如何在python

时间:2017-02-22 08:32:04

标签: python python-2.7 python-3.x

早上好,我可以指出如何在python中输入内部硬盘的路径,目前使用语句:

file = GETfile() or 'http://**********'

我想将路径放到本地文件中,但它不起作用,我错在哪里?

file = GETfile() or 'D:\xxx\xxxx\playlist\playlist.m3u'

2 个答案:

答案 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