我用python写了一个代码,使用/在文件夹中创建一个特定的文件,如果我想在windows中使用这些代码,它将不起作用,有没有一种方法可以让我在windows和Linux中使用这些代码。

在python中,我使用以下代码:

pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')

当我将使用我的代码在假设windows机器我的代码将无法工作。

如何在Linux和Windows中使用“/”(目录分隔符)?


当前回答

不要自己构建目录和文件名,使用python包含的库。

在本例中,相关的是os.path。特别是join,它从目录和文件名或目录中创建一个新的路径名,而split从完整路径中获取文件名。

你的例子是

pathfile=os.path.dirname(templateFile)
p = os.path.join(pathfile, 'output')
p = os.path.join( p, 'log.txt')
rootTree.write(p)

其他回答

使用os.path.join()。 例子:os.path.join (pathfile、“输出”、“log.txt”)。

在你的代码中将是:rootTree.write(os.path.join(pathfile,"output","log.txt"))

Use:

import os
print os.sep

以查看分隔符在当前操作系统上的外观。 在你的代码中,你可以使用:

import os
path = os.path.join('folder_name', 'file_name')

os.path.normpath(pathname)也应该被提到,因为它在Windows上将/路径分隔符转换为\分隔符。它还崩溃了冗余的高层引用…即A/B和A/foo/../B和A/。/B都变成了A/B。如果你是Windows,这些都变成了A\B。

你可以使用“os”。9月”

 import os
 pathfile=os.path.dirname(templateFile)
 directory = str(pathfile)+os.sep+'output'+os.sep+'log.txt'
 rootTree.write(directory)

你可以使用os.sep:

>>> import os
>>> os.sep
'/'