擅长:python、mysql、java
<p>对Windows路径使用Unicode文本:在顶部添加<code>from __future__ import unicode_literals</code>。你知道吗</p>
<h3>说明</h3>
<ol>
<li><code>r'D:\新建文件夹'</code>是python2上的bytestring。它的具体值取决于顶部的编码声明(例如<code># -*- coding: utf-8 -*-</code>)。如果在python2中使用非ascii文本,则应该得到一个没有声明的错误。<code>r'D:\新建文件夹'</code>是python3上的Unicode字符串,默认的源代码编码是utf-8(不需要编码声明)</li>
<li>如果输入是Unicode,Python在Windows上处理文件时使用Unicode API,如果输入是bytes,则使用“ANSI”API。你知道吗</li>
</ol>
<p>如果源代码编码不同于“ANSI”编码(例如cp1252),那么结果可能不同:字节按原样传递(相同的字节序列可以在不同的编码中表示不同的字符)。如果文件名不能用“ANSI”编码表示(例如,cp1252 a<em>单字节</em>编码不能表示所有Unicode字符,大约有一百万个Unicode字符,但只有256个字节);结果可能会有所不同。在Windows上对文件名使用Unicode字符串可以解决这两个问题。你知道吗</p>