windows文本在linux系统下利用Python读取错误的问题
2018-03-30 09:47
736 查看
# 编程小白的学习记录
"""
问题描述:
朋友有一个生产管理的txt文档,让我帮忙把txt文件内容读取出来.
直接将windows的文件复制,在linux进行读取(电脑双系统)
"""# 读取TXT文件
f=open("/home/dengshuo/DataStructure/a2.txt",'rt')
line=f.readline()
while line:
# 打印出每一行
print(line,end="")
line=f.readline()
f.close() 输出结果: File "/home/dengshuo/anaconda3/lib/python3.6/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 27: invalid start byte显示文件解码错误,utf-8不能识别 oxba
在文件默认的情况下,都是默认使用utf-8,尝试改变文本编码方式GB2312,还是出现同样的错误
open()函数提供了一个error参数来处理错误.f=open("/home/dengshuo/DataStructure/a2.txt",'rt',errors='replace')
lines=f.readlines()
for line in lines:
print(line,)
f.close()
output:home/dengshuo/anaconda3/bin/python "/home/dengshuo/PycharmProjects/dengshuo python/readtxt.py"
CE574,2-261,H180210-007-01,�����ͨ��,��,5052,5052,�Ͼ���ʱ��ó����˾,620,2080,7250,3,7350,25.592,76.776,313,82,76.79,93.65%,3��5��,3��30��
CF457,3-16,B180226-104-01,5ϵ������,��,5052,5052,��������Դ,620,1380,6600,5,7000,16.171,80.854,346,86,79.67,92.64%,3��5��,3��30��
CE575,3-16,B180226-104-01,5ϵ������,��,5052,5052,��������Դ,620,1380,6600,5,7000,16.171,80.854,346,83,79.68,96.00%,3��5��,3��30��错误的原因是没有识别文档中的汉字.
解决问题的办法也很简单,在linux文件下新建一个txt,将文本内容复制过来就可以成功读取./home/dengshuo/anaconda3/bin/python "/home/dengshuo/PycharmProjects/dengshuo python/readtxt.py"
CE574,2-261,H180210-007-01,横剪普通板,—,5052,5052,南京恒时汇贸易有司,620,2080,7250,3,7350,25.592,76.776,313,82,76.79,93.65%,3月5日,3月30日
CF457,3-16,B180226-104-01,5系汽车板,—,5052,5052,奇瑞新能源,620,1380,6600,5,7000,16.171,80.854,346,86,79.67,92.64%,3月5日,3月30日
CE575,3-16,B180226-104-01,5系汽车板
8a7c
,—,5052,5052,奇瑞新能源,620,1380,6600,5,7000,16.171,80.854,346,83,79.68,96.00%,3月5日,3月30日
CF458,3-17,B180226-104-02,5系汽车板,—,5052,5052,奇瑞新能源,620,1380,6600,5,7000,16.171,80.854,346,83,79.70,96.02%,3月5日,3月30日
Process finished with exit code 0
后记:关于unix和windows上有一个关于换行符的识别(\n 和\r\n 之争)
Python在"通用型换行符"模式下,在读取时将换行符转换成一个单独的 \n 字符
"""
问题描述:
朋友有一个生产管理的txt文档,让我帮忙把txt文件内容读取出来.直接将windows的文件复制,在linux进行读取(电脑双系统)
"""# 读取TXT文件
f=open("/home/dengshuo/DataStructure/a2.txt",'rt')
line=f.readline()
while line:
# 打印出每一行
print(line,end="")
line=f.readline()
f.close() 输出结果: File "/home/dengshuo/anaconda3/lib/python3.6/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 27: invalid start byte显示文件解码错误,utf-8不能识别 oxba
在文件默认的情况下,都是默认使用utf-8,尝试改变文本编码方式GB2312,还是出现同样的错误
解决问题:
oxBA(186): <186>查阅Pythoncookbook,这个错误是没有正确的编码方式读取文件open()函数提供了一个error参数来处理错误.f=open("/home/dengshuo/DataStructure/a2.txt",'rt',errors='replace')
lines=f.readlines()
for line in lines:
print(line,)
f.close()
output:home/dengshuo/anaconda3/bin/python "/home/dengshuo/PycharmProjects/dengshuo python/readtxt.py"
CE574,2-261,H180210-007-01,�����ͨ��,��,5052,5052,�Ͼ���ʱ��ó����˾,620,2080,7250,3,7350,25.592,76.776,313,82,76.79,93.65%,3��5��,3��30��
CF457,3-16,B180226-104-01,5ϵ������,��,5052,5052,��������Դ,620,1380,6600,5,7000,16.171,80.854,346,86,79.67,92.64%,3��5��,3��30��
CE575,3-16,B180226-104-01,5ϵ������,��,5052,5052,��������Դ,620,1380,6600,5,7000,16.171,80.854,346,83,79.68,96.00%,3��5��,3��30��错误的原因是没有识别文档中的汉字.
CE574,2-261,H180210-007-01,横剪普通板,—,5052,5052,南京恒时汇贸易有司,620,2080,7250,3,7350,25.592,76.776,313,82,76.79,93.65%,3月5日,3月30日 CF457,3-16,B180226-104-01,5系汽车板,—,5052,5052,奇瑞新能源,620,1380,6600,5,7000,16.171,80.854,346,86,79.67,92.64%,3月5日,3月30日
解决问题的办法也很简单,在linux文件下新建一个txt,将文本内容复制过来就可以成功读取./home/dengshuo/anaconda3/bin/python "/home/dengshuo/PycharmProjects/dengshuo python/readtxt.py"
CE574,2-261,H180210-007-01,横剪普通板,—,5052,5052,南京恒时汇贸易有司,620,2080,7250,3,7350,25.592,76.776,313,82,76.79,93.65%,3月5日,3月30日
CF457,3-16,B180226-104-01,5系汽车板,—,5052,5052,奇瑞新能源,620,1380,6600,5,7000,16.171,80.854,346,86,79.67,92.64%,3月5日,3月30日
CE575,3-16,B180226-104-01,5系汽车板
8a7c
,—,5052,5052,奇瑞新能源,620,1380,6600,5,7000,16.171,80.854,346,83,79.68,96.00%,3月5日,3月30日
CF458,3-17,B180226-104-02,5系汽车板,—,5052,5052,奇瑞新能源,620,1380,6600,5,7000,16.171,80.854,346,83,79.70,96.02%,3月5日,3月30日
Process finished with exit code 0
后记:关于unix和windows上有一个关于换行符的识别(\n 和\r\n 之争)
Python在"通用型换行符"模式下,在读取时将换行符转换成一个单独的 \n 字符
相关文章推荐
- 利用Linux修复Windows系统问题中最聪明的十招方法
- MySQLdb错误 编码问题 linux系统粘贴板 python取环境变量 2016.05.27回顾
- Windows 系统利用anaconda/Pycharm解决 python2 与 python3 共存问题
- 利用VMware Tools 解决 RHEL 5 linux系统 与windows 共享问题
- 双系统下Linux(ubuntu)不能进入windows的NTFS分区之挂载错误问题解决
- 在Linux中#!/usr/bin/python之后把后面的代码当成程序来执行。 但是在windows中用IDLE编程的话#后面的都是注释,之后的代码都被当成文本了。 该怎么样才能解决这个问题呢?
- ---利用Linux修复Windows系统问题中最聪明的十招方法
- 利用Python脚本获取Windows和Linux的系统版本信息 推荐
- Android --- windows下搭建Linux环境下载编译Android源代码--解决下载android系统源码错误问题
- 关于Windows系统下,Python读取文件的问题。
- windows和linux在控制台下读取EOF的问题
- 关于,系统启动问题。linux,windows etc.
- 文本文档在win和linux系统之间转换产生回车符问题
- linux和windows双系统互拷文件乱码问题
- Linux系统grub常见错误问题解决
- linux和windows双系统互拷文件乱码问题
- linux和windows系统互拷文件乱码问题
- BI EE(Oracle商务智能企业套件增强版)错误集锦——Windows系统中安装过程中的问题
- 今天又学习了,关于windows和Linux双系统删除Linux遇到的问题。
- 利用System类解决flash读取外部文本时乱码问题