树莓派使用 Python 转 mkdir

Xia*_* Li 5 python raspberry-pi

我想使用 Python 从网站下载所有图片。我已经有了HTML文件的标题,所以我用os.mkdir()创建了一个文件夹,但是标题包含中文。在树莓派(OS:Debian)上执行以下代码时,出现异常:

UnicodeEncodeError: 'ascii' 编解码器无法对位置 20-38 中的字符进行编码:序号不在范围内 (128)

try:
    os.mkdir(path)
except:
    print "create folder failed"
    continue
Run Code Online (Sandbox Code Playgroud)

如果我在 Mac 上运行代码,一切都很好。

我用谷歌搜索了这个问题并尝试了下面的代码,但它不起作用。

reload(sys)
sys.setdefaultencoding('utf-8')
Run Code Online (Sandbox Code Playgroud)

更新:

我对代码进行了大量更改,并阅读了一些有关 unicode、utf-8 等的文章。但是每次我在 Raspberry Pi 上运行代码时,它都会崩溃。然后我在 PC 上安装了 Debian 操作系统(这是我在 Raspberry Pi 上安装的),在其上运行代码,一切正常。

所以问题其实不是代码引起的,而是SSH引起的。

如果我在桌面环境下的 Debian PC 上直接运行代码,则可以。如果我使用 SSH 从我的 Mac 登录到 shell 并运行代码,则会出现一个类似“Unicode....”的异常。

我认为这是由环境变量引起的,我明天会尝试弄清楚,谢谢你们:-)

Nik*_*ita -1

也许您正在使用 Python 2,请尝试在脚本的最顶部添加以下代码,看看它是否有效:

from __future__ import unicode_literals
Run Code Online (Sandbox Code Playgroud)

并且不要忘记删除 2 行sys

默认情况下,这将在脚本中的任何位置启用 unicode 字符串,因此作为结果获取或显式定义(即使没有u)的任何字符串都s="string"将是 unicode 字符串,因此将支持中文字符。