将二进制文件写入文件失败,并显示“ascii codec无法编码字符”错误

时间:2017-03-24 14:19:56

标签: python python-3.x

这是我现在的代码:

with open(file_name, "wb+") as destination:
    for chunk in file.chunks():
        destination.write(chunk)

问题是,file包含一些任意文本,任意字符。例如,它可能包含一些西里尔字符。因此,当我写入file_name时,我收到此错误消息:

  

ascii编解码器无法编码字符\ u0410

有趣的是,在Windows服务器上,我没有收到此错误,而当我使用CentOS服务器时,我得到了一个。

如果重要,我正在使用Python 3。

修改

我能够将问题降到最低。整个问题甚至不是在阅读文件,而是在打开它。该文件(用windows-1252编码)命名为“А-1.TAB”,其中“А”是西里尔字符。所以,由于CentOS上的一些奇怪的原因,Python无法打开以这种方式命名的文件。所以现在即使这段代码也行不通:

target = open(file_name, 'wb+')

修改

这是fstab的内容,如果重要的话:

enter image description here

这是mtab的内容:

enter image description here

此外,我应该补充一点,我试图触摸12-A.TAB,其中A是一个西里尔字符并且效果很好。

0 个答案:

没有答案