<p>已经给出了正确的答案,但在Windows操作系统上使用本地驱动器路径时,还提供了一些附加信息。</p>
<p>就我个人而言,我会使用<code>r'D:\dir\subdir\filename.ext'</code>格式,但是前面提到的另外两个方法也是有效的。</p>
<p>此外,资源管理器将Windows上的文件操作限制为256个字符。较长的路径名通常会导致操作系统错误。</p>
<p>但是,有一个解决办法,就是预先将<code>"\\?\"</code>固定到一个长路径。</p>
<p>不起作用的路径示例:</p>
<pre><code>D:\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\filename.ext
</code></pre>
<p>工作的文件路径相同:</p>
<pre><code>\\?\D:\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\reallyreallyreallyreallyreallylonglonglonglongdir\filename.ext
</code></pre>
<p>因此,下面的代码用于更改文件名以包含<code>"\\?\"</code>:</p>
<pre><code>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)
</code></pre>
<p>我对每个文件(或目录)的路径使用这个,它将返回带有前缀的路径。路径不需要存在;因此您也可以在创建文件或目录之前使用此路径,以确保您没有遇到Windows资源管理器的限制。</p>
<p>高温高压</p>