如何将 unicode 写入 txt? Python [重复]
Posted
技术标签:
【中文标题】如何将 unicode 写入 txt? Python [重复]【英文标题】:How can I write unicode to a txt? Python [duplicate] 【发布时间】:2021-03-11 09:32:18 【问题描述】:我想知道如何在 txt 文件中不仅写入 ascci 的 128 个字符,而且还写入 unicode 的字符,我想创建文件并开始写入,然后我想重新打开该文件并继续写在下面。
考虑到我需要复制文件的内容,也就是说,我应该看不到任何内容, 例如一个
\n
但是换行,
对于您可以输入的每个 Unicode 字符,依此类推 重点不是让程序读取它,而是拥有txt文件,然后从记事本中安静地读取它
def write_file(text, name_table):
file = open("llenado_tabla_" + name_table + ".txt","a")
file.write(text)
file.close()
def create_file(name_table, atributos):
file = open("llenado_tabla_" + name_tabla + ".txt","w")
file.write("-- Llenando tabla " + name_tabla + '\n')
file.write("INSERT INTO\n")
file.write(nombre_tabla + '(')
for i in range(len(atributos)):
if i == len(atributos) - 1:
file.write(atributos[i] + ') \n VALUES \n')
else:
file.write(atributos[i] + ',')
file.close()
当我尝试时,我得到了这个错误:
Traceback (most recent call last):
File "D:\Projects2.0\4to semestre\Bases de datos\creador_tablas.py", line 96, in <module>
main()
File "D:\Projects2.0\4to semestre\Bases de datos\creador_tablas.py", line 95, in main
introducir_registros(atributos, tipo_dato, cantidad_id, id_generado, nombre_tabla)
File "D:\Projects2.0\4to semestre\Bases de datos\creador_tablas.py", line 62, in introducir_registros
insertar_datos_txt(datos_tabla, False, nombre_tabla)
File "D:\Projects2.0\4to semestre\Bases de datos\creador_tablas.py", line 29, in insertar_datos_txt
escribe_fichero(texto, nombre_tabla)
File "D:\Projects2.0\4to semestre\Bases de datos\creador_tablas.py", line 3, in escribe_fichero
archivo.write(texto)
File "C:\Python39\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2212' in position 25: character maps to <undefined>
【问题讨论】:
ASCII (!) 有 128 个字符。 我的坏@KlausD。对不起 重复问题请参考此帖:***.com/questions/6048085/… 【参考方案1】:Python 会透明地为您处理这个问题。 Python,尤其是 Python 3,本机使用 unicode 字符。当您将它们写入文件时,它通常以 unicode 文件格式写入。读书也一样
这是一个示例:
data = "3 unicode chars > ?☀️‼️ <"
with open('/tmp/data.uni', 'w') as f:
f.write(data)
with open('/tmp/data.uni') as f:
read_data = f.read()
print(read_data)
结果:
3 unicode chars > ?☀️‼️ <
这有点在 *** 网站上搞砸了,但在我的 Mac 上的 PyCharm 中,我的编辑器和运行程序时的输出中有三个表情符号。
这是它在我的 Mac 上的样子:
【讨论】:
嗯,?回答! 删除打印,因为我是从控制台执行的,但它仍然向我显示以下错误 Traceback(最近一次调用最后一次):文件“D:\Projects2.0\4to semestre\Bases de datos \ejem.py",第 3 行,在以上是关于如何将 unicode 写入 txt? Python [重复]的主要内容,如果未能解决你的问题,请参考以下文章
以 unicode 将 pandas DataFrame 写入 JSON