早上好,我可以指出如何在python中输入内部硬盘的路径,目前使用语句:
file = GETfile() or 'http://**********'
我想将路径放到本地文件中,但它不起作用,我错在哪里?
file = GETfile() or 'D:\xxx\xxxx\playlist\playlist.m3u'
答案 0 :(得分:7)
\
是一个转义字符。你有三个选择。
1)使用/
。这个,作为奖金适用于Linux:
'D:/xxx/xxxx/playlist/playlist.m3u'
2)逃避反斜杠
'D:\\xxx\\xxxx\\playlist\\playlist.m3u'
3)使用原始字符串:
r'D:\xxx\xxxx\playlist\playlist.m3u'
答案 1 :(得分:1)
在Windows操作系统上使用本地驱动器路径时,已经给出了正确答案,但提供了一些其他信息。
我个人会采用r'D:\dir\subdir\filename.ext'
格式,但已经提到的其他两种方法也是有效的。
此外,Windows上的文件操作受Explorer限制为256个字符的限制。较长的路径名通常会导致操作系统错误。
然而,有一种解决方法,通过将"\\?\"
预先修复为长路径。
不起作用的路径示例:
D:\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\filename.ext
可行的相同文件路径:
\\?\D:\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\filename.ext
所以我使用以下代码更改文件名以包含"\\?\"
:
import os
import platform
def full_path_windows(filepath):
if platform.system() == 'Windows':
if filepath[1:3] == ':\\':
return u'\\\\?\\' + os.path.normcase(filepath)
return os.path.normcase(filepath)
我将它用于文件(或目录)的每个路径,它将返回带有前缀的路径。路径不需要存在;因此,您也可以在创建文件或目录之前使用它,以确保您没有遇到Windows资源管理器限制。
HTH