我正在使用Python为Windows编写一个命令行目录导航器,但在 os.path.join 方面有些困难。以下是我正在尝试的内容:
abspath = "C:\Python32\Projects\ls.py"
abspath = abspath.split('\\')
print(abspath) #this prints ['C:', 'Python32', 'Projects', 'ls.py']
if(options.mFlag):
print(os.path.join(*abspath)) #this prints C:Python32\Projects\ls.py
m = time.ctime(os.path.getmtime(os.path.join(*abspath))) #this throws an exception
问题在于os.path.join在'C:'后面没有插入'/',我不知道为什么。有帮助吗?
编辑:以防将来有人在这里寻找解决方案,我只是在“C:”之后添加了os.sep而不是硬编码反斜杠,那样就可以了。
/
作为路径分隔符,而不是 \。这在 Windows 上仍然有效,但也适用于其他平台。 - BrenBarnos.path.join(os.getenv("SystemDrive"), 'somepath')
=='C:somepath'
- endolithos.path.join(os.getenv("SystemDrive"), '/', 'somepath')
。或者,如问题中所建议的那样,做同样的事情,但使用os.sep
代替'/'
。 - BrenBarn