爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15117|回复: 5

[求助] python初学者,求助自己认为很诡异的问题!

[复制链接]

新浪微博达人勋

发表于 2021-8-13 13:02:35 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
python初学者,求助自己认为很诡异的问题!
我批量读取一堆文件,就是文本txt、csv这种文件。
在读的过程中到某个文件的时候就中断,先提示解码问题。如下提示:
length of data: 2159
Traceback (most recent call last):

  File "E:\Pycode\scripte_practice\awsdata_read_temp.py", line 116, in <module>
    for item in reader:

UnicodeDecodeError: 'gbk' codec can't decode byte 0x8b in position 1: illegal multibyte sequence

网上搜寻了各种各种的“方法”,加点别的参数进去,解码这问题不在了(其实估计还存在,但被掩盖了),但又出现新的提示问题,如下:
length of data: 2159
Traceback (most recent call last):

  File "E:\Pycode\scripte_practice\awsdata_read_temp.py", line 116, in <module>
    for item in reader:

Error: line contains NUL

我到他提示的那个文件处去看,单独读取这个文件,却很顺利的把这个文件读出来。


一句话概括问题:批量读取的时候,某文件处中断了,没法继续执行代码。但单独读这个文件,顺利通过。

求帮助解决出现这种情形该怎么解决。
多谢各位高人。




密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-8-13 13:45:44 | 显示全部楼层
本帖最后由 fei@fei 于 2021-8-13 13:47 编辑

文件编码的问题和内容有NULL值呗,用utf-8,NULL值判断处理下就行了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-13 20:05:35 | 显示全部楼层
先加入一段代码,获取文件的编码方式,传递到read_csv中
第二个问题没有描述细致,如果是空行,应该添加if语句,对null行进行“处理”
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-16 10:44:45 | 显示全部楼层
fei@fei 发表于 2021-8-13 13:45
文件编码的问题和内容有NULL值呗,用utf-8,NULL值判断处理下就行了

多谢多谢。
我试一下。不行的话我再请教您。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-16 10:48:30 | 显示全部楼层
edwardli 发表于 2021-8-13 20:05
先加入一段代码,获取文件的编码方式,传递到read_csv中
第二个问题没有描述细致,如果是空行,应该添加if ...

厉害了,老李。
我根据您的思路试一下流程,慢慢摸索。
有问题再向您请教。
另外,问下您的书啥时候出来啊,等的着急啊。这两天就学您的视频了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-27 13:15:36 | 显示全部楼层
edwardli 发表于 2021-8-13 20:05
先加入一段代码,获取文件的编码方式,传递到read_csv中
第二个问题没有描述细致,如果是空行,应该添加if ...

大神,我上次根据您的指点,  读文件之前给代码添加上了判断encoding的问题。如下的一段(我也不知道写的对不对)
.
.
.
. with open(filename_list,'rb') as f:
                data = f.read()
                encoding = chardet.detect(data)['encoding']
               

            with open(filename_list,'r',encoding = encoding) as f:
.
.
.
.
但是执行之后,到了某个文件的地方(我批量读取一堆文件),还是出现如下的错误,请求帮助。

'gbk' codec can't decode byte 0x8b in position 1: illegal multibyte sequence

多谢大神帮助解决疑难杂症啊。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表