我在python中编写了一个代码,它使用/来在一个文件夹中创建一个特定的文件,如果我想在windows中使用它不起作用的代码,有没有办法在Windows中使用代码和Linux操作系统。
在python中我使用的是这段代码:
pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')
当我在假设Windows机器中使用我的代码时,我的代码将无效。
如何在Linux和Windows中使用“/”(目录分隔符)?
答案 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)
如果有人正在寻找这样的东西::
他/她想知道父目录,然后转到子文件夹,然后可能转到特定文件。如果是这样,我使用以下方法。
parent_dir = os.path.pardir
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
是更好的选择!