Answers:
您可以始终使用:
'C:/mydir'
这适用于linux和Windows。其他可能性是
'C:\\mydir'
如果您对某些名称有疑问,也可以尝试使用原始字符串文字:
r'C:\mydir'
但是,最佳实践是使用os.path
始终为您的操作系统选择正确配置的模块功能:
os.path.join(mydir, myfile)
从python 3.4开始,您还可以使用pathlib模块。这等同于以上内容:
pathlib.Path(mydir, myfile)
要么
pathlib.Path(mydir) / myfile
使用os.path
模块。
os.path.join( "C:", "meshes", "as" )
或使用原始字符串
r"C:\meshes\as"
我也建议不要在路径或文件名中使用空格。您可以在字符串中使用双反斜杠。
"C:\\meshes\\as.jpg"
"C:\"
第一件事情是对的吗?这会破坏使用的某些清洁度join
吗?
"C:\"
文件名放在中间。此外,您可以os.path.normpath
在连接之前或之后使用,以确保路径打印良好。
os.path.join( "C:\\", "meshes", "as" )
是的,\
在Python中,字符串文字表示转义序列的开始。在您的路径中,您有一个有效的两个字符的转义序列\a
,该序列被折叠成一个字符,即ASCII Bell:
>>> '\a'
'\x07'
>>> len('\a')
1
>>> 'C:\meshes\as'
'C:\\meshes\x07s'
>>> print('C:\meshes\as')
C:\meshess
其他常见的转义序列包括\t
(制表符),\n
(换行),\r
(回车):
>>> list('C:\test')
['C', ':', '\t', 'e', 's', 't']
>>> list('C:\nest')
['C', ':', '\n', 'e', 's', 't']
>>> list('C:\rest')
['C', ':', '\r', 'e', 's', 't']
如您所见,在所有这些示例中,反斜杠和文字中的下一个字符被组合在一起以在最终字符串中形成单个字符。Python的转义序列的完整列表在这里。
有多种解决方法:
>>> r'C:\meshes\as'
'C:\\meshes\\as'
>>> print(r'C:\meshes\as')
C:\meshes\as
Windows上的Python也应处理正斜杠。
您可以使用os.path.join
...
>>> import os
>>> os.path.join('C:', os.sep, 'meshes', 'as')
'C:\\meshes\\as'
...或较新的pathlib
模块
>>> from pathlib import Path
>>> Path('C:', '/', 'meshes', 'as')
WindowsPath('C:/meshes/as')
在Windows中,只要将PowerShell用作命令行界面,就可以/
在所有地方像Linux或macOS一样在路径中使用。它预装在Windows上,并且支持许多Linux命令,例如ls
command。
如果使用Windows命令提示符(cmd
在Windows“开始”菜单中键入时显示的命令提示符),则需要在其中指定路径\
。您可以/
在所有其他地方使用路径(代码编辑器,Python交互模式等)。