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

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

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

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

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


当前回答

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

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

其他回答

如果有人正在寻找这样的东西:

他/她想知道父目录,然后转到子文件夹,而不是特定的文件。如果是,我将使用以下方法。

我现在使用的是python 3.9。在那个版本中,我们有os模块来处理这些任务。因此,要获取父目录:

Parent_dir = os.path.pardir

不硬编码文件路径分隔符(/或\)是一个很好的编码实践。相反,使用上述os模块提供的依赖于操作系统的机制。它使您的代码可用于其他目的/人员。它是这样的(只是一个例子):

Path = os. Path .pardir + os. Path。Sep + 'utils' + os。Sep + 'properties.ini' 打印(f'我的全局属性文件的路径是::{path}')

输出:

. . \跑龙套\ properties.ini

您当然可以在这里查看整个文档:https://docs.python.org/3/library/os.html

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

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

如果你足够幸运地运行Python 3.4+,你可以使用pathlib:

from pathlib import Path

path = Path(dir, subdir, filename)  # returns a path of the system's path flavour

或者,同样,

path = Path(dir) / subdir / filename

你可以使用os.sep:

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

导入os,然后使用os.sep