python3读文件编码错误怎么办

作者&投稿:艾雷 (若有异议请与网页底部的电邮联系)
python文件读取出现编码的错误,该怎么解决~

Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互...

你用的是python3才会出这个问题。 python3在readlines里,缺省会使用操作系统当前的编码来解析文件,比如windows下就用GBK,在linux下则根据当前language来设置解析办法。

解决的办法是在open()里加上参数


fi= open('somefile.txt', 'r')改成
fi= open('somefile.txt', 'rt',encoding="utf-8")这个encoding就是指定编码格式。 如果encoding="utf-8"不行,你就改成encoding="gb18030",如果还不成,就改成encoding="big-5"。如果还不成。只能手工将" —"替换成负号。

  在python3中系统默认编码是unicode,读取文件经常会编码错误导致报错。


  1. 首先先确认要读取文件的编码,可这样操作:

记事本打开文本文件,点击“文件”-“另存为”查看编码:

如图显示编码就是当前的文件编码,这里是“utf-8”。


    2. 要想用指定编码打开,使用codecs模块

安装模块pip命令:

pip install codecs

    3. 使用codecs模块,例如读取test文件内容并打印:

import codecs
f=codecs.open(r"test.txt","r","gbk")
print(f.read())
f.close()

 (示例的文件是ANSI所以使用GBK读取)

以上就可以正确读取想要的文件了



代码:

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

f = open('luciatest1.txt', encoding='gb18030')
filecontent = f.read()
print(filecontent)


运行效果:



应该是你的 command prompt 不是 UTF-8 的缘故,在 print 之前转换成对应的编码,如果是中文系统一般是 gbk 。
你换成gbk编码打开试试。
你把网页存到了本地文件,这个文件的编码才是它的编码,而不是文件里用字符写了utf-8

看你读取的是什么内容把. 一般情况下, 将文件编码 成utf8, 你的python 脚本也声明utf8
这样基本上可以应付绝大部分的乱码问题.
如果有特殊语言, 例如切斯基摩语, 就需要进行特殊处理了

<!--
你可以试试在代码最上面加#coding:utf-8 #utf-8改为你文件的编码

或者在获取文件对象的时候加 .encoding='#你文件的编码'
本人也菜鸟,你可以试试
-->


python里面request怎么读取html代码?
使用Python 3的requests模块抓取网页源码并保存到文件示例:import requests html = requests.get("http:\/\/www.baidu.com")with open('test.txt','w',encoding='utf-8') as f:f.write(html.text)这是一个基本的文件保存操作,但这里有几个值得注意的问题:1.安装requests包,命令行输入pip ...

Python中read,readline和readlines三者间的区别和用法
这篇文章主要给大家介绍了关于Python中读取文件的read()、readline()和readlines()方法三者间的区别和用法,需要的朋友可以参考下 前言 众所周知在python中读取文件常用的三种方法:read(),readline(),readlines(),今天看项目是又忘记他们的区别了。以前看书的时候觉得这东西很简单,一眼扫过,待到用时却...

Python文件读写
总之,根据需求来。仅以 txt 文件为例,其他的文件读取需要特殊处理;另外,文件的格式编码方式也需要注意;这边仅介绍读取方法,其他的会出专题来学习。在D:\\python_file 下新建 poet.txt;示例如下,由于一个中文会占多个字节,故read(size) 部分会乱码,如:write()写文件和读文件是一样的,唯一...

python3在文件夹中查找指定文件方法封装
不是人人都能活的低调,可以低调的基础是随时都能高调。上一篇: configobj读写.ini配置文件方法封装 下一篇: python3使用hmac、hashlib加密字符串方法封装 本篇文章介绍一种方法在文件夹中查找指定文件: 1、方法【get_all_file】:根据给出的路径进行递归,找到文件夹下所有的文件,以生成...

python3多少源代码(2023年最新分享)
Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行 #!\/usr\/bin\/envpython3#-*-coding:utf-8-*- 第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码...

python读取指定目录中所有文本文件的第一行,并以此为该文本文件名重命名...
import os os.listdir("")#遍历当前目录文件 os.rename(“老文件”,“新文件”)例:http:\/\/zhidao.baidu.com\/question\/121607089.html 读 aa=os.open("文件","r")aa.next()aa.close()#关闭打开文件 代码:coding=utf-8 import os ul=r"C:\\xxx\\xxx\\xxx\\aaa"#我的文件在aaa文件夹下 fil...

用Python读取指定txt文件中的部分内容
Python中,要读取指定的txt文件并提取部分内容,可以借助以下代码实现:代码的核心步骤如下:首先,定义要读取的txt文件路径,例如:mxdPath = r"F:\\res\\高程注答准点.txt",这是程序开始操作的关键。 接下来,创建两个输出文件,分别为"1.txt"和"2.txt",如果文件不存在,程序会自动创建。这...

关于python对文件的处理
以下是其中几个常用的函数:open()函数:用于打开文件,可以指定文件的模式(读、写或其他);read()函数:用于读取文件中的内容;write()函数:用于写入文件;close()函数:用于关闭文件;copy()函数:用于复制文件;remove()函数:用于删除文件;rename()函数:用于重命名文件。Python还提供了一些模块,...

用python3生成一个0001,0002,0003~9998,9999组成的txt文件,不足四位...
file = open('numbers.txt','w')for i in range(1,10000): file.write("%04d\\n" % i)file.close()

python读取文件,描述错误的是
2. 文件格式错误:如果您尝试读取的文件格式与您的读取代码不兼容,Python 将无法读取文件。例如,如果您尝试使用文本读取代码读取二进制文件,或者尝试使用 JSON 读取代码读取 XML 文件,Python 将会报错。3. 文件权限错误:如果您尝试读取未授权的文件,Python 将无法读取其内容并报错。请确保您有足够的...

郾城区19172824766: python程序读中文文本时,中文编码错误,怎么解决? -
祝矩奇米: 你确定读到的文本是cp936编码么?如果不是你用decode('cp936')肯定就会出错,你可以用chardet模块来检测文本编码,然后再decode

郾城区19172824766: python3出现utf - 8 codec cant decode bytes in position114 - 115:invalid continuation byte怎么办 -
祝矩奇米: 首先检查文件编码是不是utf-8; 如果是utf-8,检查是否有乱码. 这个错误就是说这两个字节的内容无法按utf-8来解码. 比如一些网站页面有部分乱码的问题存在,去掉相应的字节后就好,我是这么解决的:def _html(url, decode):html = urlopen...

郾城区19172824766: 遇到python编码错误要怎么解决 -
祝矩奇米: 在将字符串写入文件时,执行f.write(str),后台总是报错:UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' in position 0: ordinal not in range(128),即ascii码无法被转换成unicode码.刚开始我以为Python默认的编码是utf-8,...

郾城区19172824766: 怎么解决Python3乱码问题 -
祝矩奇米: 如果是Python文件用编辑器打开时出现乱码,将编辑器调试成utf-8或者gb2312显示.如果是运行Python文件时显示乱码,则修改Python文件,在文件顶部添加:# code = utf-8

郾城区19172824766: python读取文件内容报错,应该是编码问题,求解答 -
祝矩奇米: 建议用codecs.open替代open; 若LogPath文件是以utf-8编码格式保存的: LogLine = open(LogPath) ==> LogLine = codecs.open(LogPath, 'r', 'utf-8')

郾城区19172824766: python读取csv文件时,数据内容含有中文,读取出错,怎么办 -
祝矩奇米: 先看一下这个文件编码格式 在打开文件open的时候设定encoding参数 或者别用open,而是用codecs库 import codecs F=codecs.open('xxx.csv','r','utf-8') content=F.read() F.close() print(content)

郾城区19172824766: 如何处理python编码转换时的UnicodeDecodeError异常 -
祝矩奇米: python中通过open打开文件后,当文件中有中文fd.readline()时会抛出UnicodeDecodeError的异常.通过指定encoding参数来指定打开文件的编码.encoding的值默认是UTF-8,通过fd.encoding可以获得它的值.如果需要自动获得文件的编码格式需要chardet模块支持才行.解决方法,默认还是使用utf-8方式来读入文件,当有UnicodeDecodeError异常时,with open(fn, "r") as fd块的会自动把fd关闭,所以,直接在except中使用gbk编码重新打开文件就可以了.

郾城区19172824766: python3.6编码问题 -
祝矩奇米: 1 urllib.request.urlopen(url).read().decode('utf-8') #请求页面数据,并转换成str 把utf-8修改为页面的编码即可解决

郾城区19172824766: python3.6出现编码问题,怎么解决 -
祝矩奇米: Traceback (most recent call last):File "E:\python\test_3.py", line 52, in baidu_tieba(url, begin_page, end_page) File "E:\python\test_3.py", line 30, in baidu_tieba page_data = m.decode('GBK') UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 3697: illegal multibyte sequence!

郾城区19172824766: Python在读取中文文件,编码是ANSI格式的,希望能够将汉字一个一个输出.所以想转成UTF - 8的.求解. -
祝矩奇米: 你的代码里看不到要转编码吗,不过从你报错信息来看,在第一行加上一句:# coding:gbk 即可解决.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网