hul*_*007 166 python unix linux windows
我已经在python中编写了一个代码,它使用/在一个文件夹中创建一个特定的文件,如果我想在windows中使用它不起作用的代码,有没有办法在Windows和Linux中使用代码.
在python我使用此代码:
pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')
Run Code Online (Sandbox Code Playgroud)
当我在假设Windows机器中使用我的代码时,我的代码将无法正常工作.
如何在Linux和Windows中使用"/"(目录分隔符)?
Ser*_*van 241
使用os.path.join()
.示例:os.path.join(pathfile,"output","log.txt")
.
在您的代码中将是: rootTree.write(os.path.join(pathfile,"output","log.txt"))
Ale*_*nko 92
使用:
import os
print os.sep
Run Code Online (Sandbox Code Playgroud)
查看分隔符在当前操作系统上的显示方式.
在您的代码中,您可以使用:
import os
path = os.path.join('folder_name', 'file_name')
Run Code Online (Sandbox Code Playgroud)
小智 35
os.path.normpath(pathname)
还应该提到它,因为它将/
路径分隔符转换为\
Windows上的分隔符.它还折叠冗余uplevel引用...即,A/B
与A/foo/../B
和A/./B
一切变得A/B
.如果你是Windows,这些都会成为A\B
.
Mar*_*oun 15
一些有用的链接可以帮助您:
Eug*_*ash 11
如果您有幸运行Python 3.4+,您可以使用pathlib
:
from pathlib import Path
path = Path(dir, subdir, filename) # returns a path of the system's path flavour
Run Code Online (Sandbox Code Playgroud)
或者,等效地,
path = Path(dir) / subdir / filename
Run Code Online (Sandbox Code Playgroud)
你可以使用" os.sep "
import os
pathfile=os.path.dirname(templateFile)
directory = str(pathfile)+os.sep+'output'+os.sep+'log.txt'
rootTree.write(directory)
Run Code Online (Sandbox Code Playgroud)
不要自己构建目录和文件名,使用 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)
Run Code Online (Sandbox Code Playgroud)
如果有人正在寻找这样的东西:
他/她想知道父目录,然后转到子文件夹,也许还想知道特定文件。如果是这样,我使用以下方法。
Run Code Online (Sandbox Code Playgroud)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
归档时间: |
|
查看次数: |
138502 次 |
最近记录: |