如何在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