Skip to main content
 首页 » 编程设计

python之如何使用python在文件中写入 'Ñ'

2025年05月04日14mq0036

我知道编码可以这样声明:

# -*- coding: utf-8 -*- 

但是当我尝试在文件中写入 'ñ' 时,却改为写入 'Ã'。

我也尝试过这种方式(比如在文档中写 here)

import codecs 
 
f = codecs.open('output', encoding='utf-8') 
f.write("ñÑ") 

但它提高了:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) 

请您参考如下方法:

您正在使用 codecs.open(),生成需要 unicode 对象 的文件对象。但是,您传入的是字节字符串,因此 Python 必须首先使用默认的 ASCII 编解码器解码为 unicode。这就是为什么您会收到 解码 错误,其中 ASCII 编解码器无法解码您的 UTF-8 字节。

解码您的字符串,使用 unicode 字符串文字,或使用 open() 而不是 codecs.open()。

这些都行:

# -*- coding: utf-8 -*- 
import codecs 
with codecs.open('output', encoding='utf-8') as f: 
    f.write(u"ñÑ") 

或

# -*- coding: utf-8 -*- 
import codecs 
with codecs.open('output', encoding='utf-8') as f: 
    f.write("ñÑ".decode('utf8')) 

或

# -*- coding: utf-8 -*- 
with open('output') as f: 
    f.write("ñÑ") 

codecs.open() 确实采用编解码器,但它告诉文件对象如何将 unicode 对象编码为字节。