【问题标题】:os.path.join() on windows?os.path.join() 在 Windows 上?
【发布时间】:2021-08-18 16:27:36
【问题描述】:

我想在 windows 上写这段代码: os.path.join(folder1 + "/" + folder2)

它在 MAC 中运行良好,但在 Windows 中它给了我一个错误: OSError: [WinError 123] The filename, directory name, or volume label syntax is wrong: 'C:\Users\Khalaf\Desktop\test\dataset-图像\x.jpg' -> 'C:\Users\Khalaf\Desktop\test\dataset-images\C:\Users\Khalaf\Desktop\test\dataset-images-1.jpg'

【问题讨论】:

  • 这能回答你的问题吗? Python os.path.join on Windows
  • 你必须正确使用os.path.join()os.path.join(folder1, folder2)。分隔符由函数添加。
  • 我需要路径之间的“/”
  • 您也可以使用os.pathsep 代替/
  • 在 Windows 上,您“在路径之间需要 /”,因为 / 是 Windows 文件名中的非法字符。 os.path.join() 知道,即使你不知道。

标签: python path


【解决方案1】:
os.path.join(folder1 + "\\" + folder2)

MAC 和 Linux 与单 / 一起工作

但在 Windows 中我们必须通过 \\

试试这些吧

【讨论】:

  • 我做了,它给了我:OSError: [WinError 123] 文件名、目录名或卷标语法不正确:'C:\\Users\\Khalaf\\Desktop\\test\ \dataset-images\\x.jpg' -> 'C:\\Users\\Khalaf\\Desktop\\test\\dataset-images\\C:\\Users\\Khalaf\\Desktop\\test\\ dataset-images-1.jpg'
  • 请分享文件夹1和文件夹2的路径
  • 我使用 os.path.basename 解决了这个问题,非常感谢您的提示
【解决方案2】:

用逗号分隔两个文件夹

os.path.join(folder1, folder2)

该函数为我认为是\

的窗口创建等效项

【讨论】:

    【解决方案3】:

    我正在尝试学习 python 并正在制作一个可以输出脚本的程序。我想使用 os.path.join,但很困惑。

    os.path.join('c:', 'sourcedir')

    当我使用copytree命令时,Python会以想要的方式输出,例如:

    导入关闭

    src = os.path.join('c:', 'src')

    dst = os.path.join('c:', 'dst')

    shutil.copytree(src, dst)

    Windows 对每个驱动器都有一个当前目录的概念。因此,“c:sourcedir”表示当前 C: 目录中的“sourcedir”,您需要指定一个绝对目录。

    其中任何一个都应该工作并给出相同的结果,但我目前没有启动 Windows VM 来仔细检查:

    "c:/sourcedir"

    os.path.join("/", "c:", "sourcedir")

    os.path.join("c:/", "sourcedir")

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 2011-06-26
      • 2022-11-12
      • 2011-01-14
      • 2012-12-06
      相关资源
      最近更新 更多