Windows path in Python
表示Windows目录的最佳方式是什么,例如
你可以随时使用:
1 | 'C:/mydir' |
这适用于Linux和Windows。
其他可能性是
1 | 'C:\\mydir' |
如果你有一些名字的问题,你也可以尝试原始的字符串文字:
1 | r'C:\mydir' |
但最佳做法是使用始终为您的操作系统选择正确配置的
1 | os.path.join(mydir, myfile) |
从python 3.4你也可以使用pathlib模块。这与上述情况相同:
1 | pathlib.Path(mydir, myfile) |
要么
1 | pathlib.Path(mydir) / myfile |
使用
1 | os.path.join("C:","meshes","as" ) |
或者使用原始字符串
1 | r"C:\meshes\as" |
是的,Python字符串文字中的
1 2 3 4 5 6 7 8 | >>> '\a' '\x07' >>> len('\a') 1 >>> 'C:\meshes\as' 'C:\\meshes\x07s' >>> print('C:\meshes\as') C:\meshess |
其他常见的转义序列包括
1 2 3 4 5 6 7 8 9 10 | >>> list('C:\test') ['C', ':', '\t', 'e', 's', 't'] >>> list('C: est') ['C', ':', ' ', 'e', 's', 't'] >>> list('C: est') ['C', ':', ' ', 'e', 's', 't'] |
如您所见,在所有这些示例中,反斜杠和文字中的下一个字符组合在一起,以在最终字符串中形成单个字符。 Python的转义序列的完整列表就在这里。
有多种方法可以解决这个问题:
Python不会处理前缀为
1 2 3 4 | >>> r'C:\meshes\as' 'C:\\meshes\\as' >>> print(r'C:\meshes\as') C:\meshes\as |
Windows上的Python也应该处理正斜杠。
你可以用
1 2 3 | >>> import os >>> os.path.join('C:', os.sep, 'meshes', 'as') 'C:\\meshes\\as' |
...或较新的
1 2 3 | >>> from pathlib import Path >>> Path('C:', '/', 'meshes', 'as') WindowsPath('C:/meshes/as') |