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

时间:2013-04-15 08:42:13

标签: python linux windows unix

我在python中编写了一个代码,它使用/来在一个文件夹中创建一个特定的文件,如果我想在windows中使用它不起作用的代码,有没有办法在Windows中使用代码和Linux操作系统。

在python中我使用的是这段代码:

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

当我在假设Windows机器中使用我的代码时,我的代码将无效。

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

11 个答案:

答案 0 :(得分:212)

使用os.path.join()。 示例:os.path.join(pathfile,"output","log.txt")

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

答案 1 :(得分:83)

使用:

import os
print os.sep

查看分隔符在当前操作系统上的显示方式 在您的代码中,您可以使用:

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

答案 2 :(得分:52)

您可以使用os.sep

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

答案 3 :(得分:28)

还应提及

os.path.normpath(pathname),因为它会将<Button Width="300" Height="300" Focusable="False"/> 路径分隔符转换为Windows上的/分隔符。它还会折叠冗余的高级引用...即,\A/B以及A/foo/../B都变为A/./B。如果你是Windows,这些都变为A/B

答案 4 :(得分:13)

一些有用的链接可以帮助您:

答案 5 :(得分:10)

如果您有幸运行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

答案 6 :(得分:8)

执行import os然后使用os.sep

答案 7 :(得分:7)

  
    

您可以使用“ os.sep

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

答案 8 :(得分:4)

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

在这种情况下,相关的是os.path。特别是join,它从目录和文件名或目录创建一个新的路径名,并从一个完整的路径中获取文件名。

你的例子是

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

答案 9 :(得分:1)

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

他/她想知道父目录,然后转到子文件夹,然后可能转到特定文件。如果是这样,我使用以下方法。

  1. 我现在使用的是 python 3.9。所以在那个版本中,我们有 os 模块来处理这些任务。所以,为了获取父目录 ::
<块引用>
parent_dir = os.path.pardir
  1. 最好不要对文件路径分隔符(/ 或 \)进行硬编码。相反,请使用上述 os 模块提供的操作系统相关机制。它使您的代码非常可用于其他目的/人员。它是这样的(只是一个例子)::
<块引用>

path = os.path.pardir + os.sep + 'utils' + os.sep + 'properties.ini'

print(f'The path to my global properties file is :: {path}')

输出::

<块引用>

..\utils\properties.ini

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

答案 10 :(得分:0)

我在大多数情况下都使用 pathlib,所以我喜欢:pathlib.os.sep

如果您不需要 pathlib,通常 os 是更好的选择!