如何在Linux和Windows中使用“/”(目录分隔符)?
我写了一个代码在python中使用/在一个文件夹中创build一个特定的文件,如果我想在Windows中使用的代码将无法正常工作,有没有一种方式,我可以使用Windows和Linux的代码。
在Python中,我使用这个命令:
pathfile=os.path.dirname(templateFile) rootTree.write(''+pathfile+'/output/log.txt')
当我将使用我的代码在Windows机器我的代码将无法正常工作。
请帮我在这里!
使用os.path.join()
。 例如: os.path.join(pathfile,"output","log.txt")
。
在你的代码将是: rootTree.write(os.path.join(pathfile,"output","log.txt"))
使用:
import os print os.sep
看看分隔符在当前操作系统上的样子。
在你的代码中,你可以使用:
import os path = os.path.join('folder_name', 'file_name')
你可以使用os.sep :
>>> import os >>> os.sep '/'
一些有用的链接,可以帮助你:
- os.sep
- os.path中
- os.pathsep
在Windows上,os.path.normpath(path名)也应该被称为转换/path分隔符到\分隔符中。 它也折叠了多余的前导参考…即A / B和A / foo / … / B和A /./ B都变成了A / B。 如果你是Windows,这些都成为A \ B。
做一个import os
,然后使用os.sep
不要build立自己的目录和文件名,使用python包含的库。
在这种情况下,相关的是os.path 。 尤其是连接,从目录和文件名或目录创build一个新的path名,并从完整的path中获取文件名。
你的例子是
pathfile=os.path.dirname(templateFile) p = os.path.join(pathfile, 'output') p = os.path.join( p, 'log.txt') rootTree.write(p)
如果你有幸运行Python 3.4+,你可以使用pathlib
:
from pathlib import Path path = Path(dir) / subdir / filename # returns a path of the system's path flavour