当前位置: 首页 > 面试题库 >

Python从文件读取并保存到utf-8

夏景胜
2023-03-14
问题内容

我在从文件读取,处理其字符串并将其保存到UTF-8文件时遇到问题。

这是代码:

try:
    filehandle = open(filename,"r")
except:
    print("Could not open file " + filename)
    quit()

text = filehandle.read()
filehandle.close()

然后,我对可变文本进行一些处理。

接着

try:
    writer = open(output,"w")
except:
    print("Could not open file " + output)
    quit()

#data = text.decode("iso 8859-15")    
#writer.write(data.encode("UTF-8"))
writer.write(text)
writer.close()

这样可以完美地输出文件,但是根据我的编辑器,它在iso
8859-15中可以输出。由于相同的编辑器将输入文件(在变量文件名中)识别为UTF-8,所以我不知道为什么会这样。据我的研究表明,注释行应该可以解决问题。但是,当我使用这些行时,产生的文件主要具有特殊字符的乱码,带有波浪号的单词作为文本是西班牙语。当我感到困惑时,我将不胜感激。


问题答案:

使用以下codecs模块在程序的I / O边界处处理与Unicode之间的文本:

import codecs
with codecs.open(filename, 'r', encoding='utf8') as f:
    text = f.read()
# process Unicode text
with codecs.open(filename, 'w', encoding='utf8') as f:
    f.write(text)

编辑:io现在建议使用该模块代替编解码器,并且该模块与Python 3的open语法兼容,如果使用Python
3,则可以在open不需要Python 2兼容性的情况下使用。

import io
with io.open(filename, 'r', encoding='utf8') as f:
    text = f.read()
# process Unicode text
with io.open(filename, 'w', encoding='utf8') as f:
    f.write(text)


 类似资料:
  • 本文向大家介绍Python实现读取并保存文件的类,包括了Python实现读取并保存文件的类的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现读取并保存文件的类。分享给大家供大家参考,具体如下: 这个类写在一个叫class_format.py 的文件里, 放在D盘 有一个testcsv.txt 文件放在D盘,内容如下(oi的两边有空格): 这个代码的ReadData模块用到了c

  • 问题内容: 是否可以将JSON数据保存到本地文本文件中?因此,稍后我可以通过加载该文件再次使用它,并取回存储的JSON数据。其实我真正想做的是在文本文件中导出JSON数据,以便以后可以用作import.Any的建议或解决方案? 这是我要用于导出到文本的一些示例。 http://jsfiddle.net/k56eezxp/ 问题答案: 是否可以将JSON数据保存到本地文本文件中? 是。当前,链接的j

  • 我正在尝试将一些UTF-8字符输出到JSON文件。 当我保存文件时,它们是像这样编写的: {“some_key”: “Enviar invitaci\u00f3n privada”} 上述操作是有效的。当我加载文件并打印“some_key”时,它会在终端中显示“Enviar invitación Private ada”。 是否无论如何都要编写带有“some_key”作为编码版本的JSON文件,如

  • 本文向大家介绍python读取和保存视频文件,包括了python读取和保存视频文件的使用技巧和注意事项,需要的朋友参考一下 为了获取视频,应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。 一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视

  • 我试图从文件中读取内容,然后将其保存在SoapUi的属性中。 文件的外观(test.txt): 我的代码: 出于某种原因,它只保存属性中的最后一个值(1231434324)。 下面的示例实际上将所有值保存到属性中,但也会在属性值的开头和结尾插入方括号。 [123123123123, 123124234353, 231231231241, 213123123123]

  • 下面是我的文本文件: 这是我的代码片段: 我得到以下异常: 我该怎么办?