鱼C论坛

 找回密码
 立即注册
查看: 3502|回复: 7

[已解决]关于python文本文件读取再打印的问题

[复制链接]
发表于 2016-8-8 14:46:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Xric0i 于 2016-8-8 14:48 编辑

有代码如下:
  1. file = open ('record.txt','r').readlines
  2. print(file)
复制代码

会打印出:
  1. <built-in method readlines of _io.TextIOWrapper object at 0x7fb7238f9b40>
复制代码

没有显示我想要的内容
正确读取文件打印的方式是这样的吗?要怎么处理呢?
最佳答案
2016-8-8 15:25:25
这个是完美版,基本上没什么漏洞
  1. import time
  2. import sys
  3. import os
  4. print('准备中,请稍候...')
  5. os.system('pip install chardet')
  6. try:
  7.     import chardet
  8. except:
  9.     print('系统错误,即将退出')
  10.     time.sleep(3)
  11.     sys.exit(0)
  12. else:
  13.     f=open('test.txt','rb')
  14.     test=f.readline()
  15.     enc=chardet.detect(test)
  16.     print(f.read(os.path.getsize('test.txt')).decode(enc['encoding']))
  17.     f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-8 14:48:34 | 显示全部楼层
  1. import os

  2. f=open('test.txt')
  3. filesize=os.path.getsize('test.txt')
  4. data=f.read(filesize)
  5. print(data)
  6. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-8 14:53:04 | 显示全部楼层

你好,我尝试了一下你的代码:
  1. Traceback (most recent call last):
  2.   File "test.py", line 5, in <module>
  3.     data=f.read(filesize)
  4.   File "/usr/local/lib/python3.5/codecs.py", line 321, in decode
  5.     (result, consumed) = self._buffer_decode(data, self.errors, final)
  6. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 2: invalid start byte
复制代码

但是出现了这个错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-8 14:53:31 | 显示全部楼层
Xric0i 发表于 2016-8-8 14:53
你好,我尝试了一下你的代码:

但是出现了这个错误

文件编码有问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-8 14:55:03 | 显示全部楼层
file = open ('record.txt','r').readlines()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-8 14:56:11 | 显示全部楼层
你可以先打开命令提示符,然后输入以下命令
pip install chardet
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-8 15:06:35 | 显示全部楼层

谢谢,我弄明白了,我最终使用的代码是这样的:
  1. data=open('record.txt').read()
  2. print(data)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-8 15:25:25 | 显示全部楼层    本楼为最佳答案   
这个是完美版,基本上没什么漏洞
  1. import time
  2. import sys
  3. import os
  4. print('准备中,请稍候...')
  5. os.system('pip install chardet')
  6. try:
  7.     import chardet
  8. except:
  9.     print('系统错误,即将退出')
  10.     time.sleep(3)
  11.     sys.exit(0)
  12. else:
  13.     f=open('test.txt','rb')
  14.     test=f.readline()
  15.     enc=chardet.detect(test)
  16.     print(f.read(os.path.getsize('test.txt')).decode(enc['encoding']))
  17.     f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 03:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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