os.path.join() 在 windows 上?

os.path.join() on windows?

我想在 windows 上编写这段代码: os.path.join(文件夹 1 + "/" + 文件夹 2)

它在 MAC 中工作正常,但在 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'

os.path.join(folder1 + "\" + folder2)

MAC 和 Linux 与单个 /

一起工作

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

尝试这些会有效

用逗号分隔两个文件夹

os.path.join(folder1, folder2)

该函数为 windows 创建了等价物,我认为是 \

我正在努力学习 python 并且正在编写一个程序来输出脚本。我想使用 os.path.join,但我很困惑。

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

当我使用 copytree 命令时,Python 将以所需的方式输出它,例如:

导入 shutil

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")

在 windows 上试过:

user= os.getlogin()
os.path.join("C:\Users",user,"TestAutomationDownloads")

结果 - 在路径 c:Users\USERNAME\TestAutomationDownloads 的 windows 中创建了一个目录 其中 username 从变量 user =os.getlogin() 获取其值 os.path.join 在变量前后添加“\”。