鱼C论坛

 找回密码
 立即注册
查看: 782|回复: 13

[已解决]关于读取文件时遇到的一些问题

[复制链接]
发表于 2020-4-19 19:03:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天在做题目的时候发现一些问题:
代码1
print("请输入要打开的文件名:",end="")
file_name = input()
file = open(file_name,'r')
file_content = []
for eachline in file:
    file_content.append(eachline)
关于这一段代码,如果读取的文件是我用python程序生成的:
print("请输入文件名:",end="")
file_name = input()
f = open(file_name+'.txt','w')

print("请输入内容【单独输入':w'保存退出】:")
file_content = input()
while file_content != ':w':
    f.write(file_content+'\n')
    file_content = input()
    
f.close()
通过这样的方式生成的txt文件,就能被代码1正常运作。
但如果是我自己新建的txt文件,就会会报错,情况如下:
    请输入要打开的文件名:诗.txt
    Traceback (most recent call last):
      File "E:\学习\python\全部替换.py", line 6, in <module>
        for eachline in file:
    UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 20: illegal multibyte sequence


希望有懂的鱼油帮我解答一下
最佳答案
2020-4-19 19:17:58
https://blog.csdn.net/lqzdreamer ... gCommendFromBaidu-2
编码问题,可以用异常处理 try   except
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-19 19:05:13 From FishC Mobile | 显示全部楼层
编码问题啊,python躲不掉的伤
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-19 19:10:27 | 显示全部楼层
wp231957 发表于 2020-4-19 19:05
编码问题啊,python躲不掉的伤


那请问以后怎么避免或者遇到了该怎么办呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 19:17:18 From FishC Mobile | 显示全部楼层
cheese_hunter 发表于 2020-4-19 19:10
那请问以后怎么避免或者遇到了该怎么办呢


python3 默认utf8
你自己建立的文件估计是ansi或者gbk
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-19 19:17:58 | 显示全部楼层    本楼为最佳答案   
https://blog.csdn.net/lqzdreamer ... gCommendFromBaidu-2
编码问题,可以用异常处理 try   except
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 19:24:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-19 19:28:21 From FishC Mobile | 显示全部楼层
cheese_hunter 发表于 2020-4-19 19:10
那请问以后怎么避免或者遇到了该怎么办呢

没想到你会选择一个治标不治本的答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-19 19:33:24 | 显示全部楼层
wp231957 发表于 2020-4-19 19:28
没想到你会选择一个治标不治本的答案

手快了,作为初学者我现在更倾向于给txxcat,但是没办法,我不知道怎么撤销或者改。
还是感谢你的回答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 19:34:58 From FishC Mobile | 显示全部楼层
cheese_hunter 发表于 2020-4-19 19:33
手快了,作为初学者我现在更倾向于给txxcat,但是没办法,我不知道怎么撤销或者改。
还是感谢你的回答。

撤不了
你给谁最佳都无所谓,这只是你对问题的一种态度而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 19:50:55 | 显示全部楼层
wp231957 发表于 2020-4-19 19:28
没想到你会选择一个治标不治本的答案

怎么才算治本的答案呢,求教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 19:53:19 From FishC Mobile | 显示全部楼层
jkluoling1992 发表于 2020-4-19 19:50
怎么才算治本的答案呢,求教

当然是查看你想操作的文件到底是使用了什么编码格式,然后用对应的编码格式去操作该文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 19:56:15 | 显示全部楼层
wp231957 发表于 2020-4-19 19:53
当然是查看你想操作的文件到底是使用了什么编码格式,然后用对应的编码格式去操作该文件

意思是走一步看一步咯,因为不确定文本的编码方式,用异常处理就像一个选择,能用utf8 编码打开就直接处理文件,若打开出现异常错误,就选择gbk处理方式,,或者其他方式,总之要保证程序的通用性,,这不是治本的方法么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 20:00:11 From FishC Mobile | 显示全部楼层
jkluoling1992 发表于 2020-4-19 19:56
意思是走一步看一步咯,因为不确定文本的编码方式,用异常处理就像一个选择,能用utf8 编码打开就直接处 ...

打住,不想探讨这些没有用的东东
对于楼主来说,还是多了解一些知识,才是王道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 20:02:43 | 显示全部楼层
wp231957 发表于 2020-4-19 20:00
打住,不想探讨这些没有用的东东
对于楼主来说,还是多了解一些知识,才是王道

那你看过链接里面的东西吗,还是不明白你说的治标不治本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 16:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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