【发布时间】:2020-04-15 20:00:03
【问题描述】:
我有一个字符串变量dirname,其中包含带有正确斜杠的路径(如果在 Linux 上是“/”,如果在 Windows 上是“\”)。
我有一个可能包含错误斜杠的相对文件名字符串。
我如何加入他们并为我正在运行脚本的操作系统获取正确的完整文件名,使用 pathlib?
例如在 Linux 上运行:
dirname = '/users/myname/dir1'
filename1 = '..\\dir2\\file.txt'
filename2 = '../dir2/file.txt'
我想通过filename1 或filename2 加入dirname,并在这两种情况下都获得/users/myname/dir2/file.txt。
在 Windows 上运行:
dirname = 'C:\\dir1'
filename1 = '..\\dir2\\file.txt'
filename2 = '../dir2/file.txt'
我想通过filename1 或filename2 加入dirname,并在这两种情况下都获得C:\\dir2\\file.txt。
【问题讨论】:
-
你试过
os.path.join吗? -
@sahasrara62 使用
os.path.join,我需要为运行它的操作系统替换斜杠以获得正确的斜杠,不是吗?我想要独立于操作系统的解决方案。 -
我很困惑,你如何设法获得正确的
dirname字符串,但不知道你应该使用filename1还是filename2? -
@AMC
dirname作为命令行参数出现,因此对于操作系统来说总是正确的,文件名列在输入文件中,可能来自 Windows 端