鱼C论坛

 找回密码
 立即注册
查看: 3197|回复: 11

[已解决]如何读取用二进制保存的txt文档内容

[复制链接]
发表于 2017-5-5 12:07:33 | 显示全部楼层 |阅读模式

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

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

x
在《零基础Python课后练习》中的31课,用二进制保存了文件内容在txt档中,

但是我希望读取 txt档中的二进制文件,发现使用open指令是出错的,应该怎么办呢?

程序如下,附件有原文件
import pickle

def save_file(boy, girl, count):

           boy_file_name = 'boy_' + str(count) + '.txt'
           girl_file_name = 'girl_' + str(count) + '.txt'

           boy_file = open(boy_file_name, 'wb')
           girl_file = open(girl_file_name, 'wb')

           pickle.dump(boy, boy_file)
           pickle.dump(girl, girl_file)

           boy_file.close()
           girl_file.close()


def operation_file(file_name):

           count = 1
           boy = []
           girl = []

           file = open(file_name)

           for each_line in file:
                      if each_line[: 6] != '======':
                                 (role, spoken) = each_line.split(':', 1)
                                 if role == '小甲鱼':
                                            boy.append(spoken)
                                 if role == '小客服':
                                            girl.append(spoken)
                      else:
                                 save_file(boy, girl, count)

                                 boy = []
                                 girl = []
                                 count += 1

           save_file(boy, girl, count)
           file.close()

operation_file('record.txt')


用上述程序,使用二进制保存内容到了txt档内,但是应该怎么样再次读取哪些内容呢?

求助。。



最佳答案
2017-5-8 17:35:32
file = open(r'D:\Python Play\boy_1.txt', 'rb')

record.rar

681 Bytes, 下载次数: 5

文档内容来的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-5-5 12:08:13 | 显示全部楼层
,,拜托,别关我的帖子呀。。
是真心求问的。。。
不懂啊。。。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 13:56:04 | 显示全部楼层
用rb的方式打开文件,然后pickle.load读取文件内容。
例如:
file = open("filename","rb")
print(pickle.load(file))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 16:57:09 | 显示全部楼层
你既然知道写的时候要用wb
那你读的时候有用rb了么?显然没有吧,所以...你懂滴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 22:14:16 | 显示全部楼层
本帖最后由 WeiChat阿威 于 2017-5-5 22:16 编辑
gopythoner 发表于 2017-5-5 16:57
你既然知道写的时候要用wb
那你读的时候有用rb了么?显然没有吧,所以...你懂滴


有用呀。。。

file = open('D:\Python Play\boy_1.txt', 'rb')

但是输出的结果是错误的额。。说是错误的。。

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    file = open('D:\Python Play\boy_1.txt', 'rb')
OSError: [Errno 22] Invalid argument: 'D:\\Python Play\x08oy_1.txt'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 22:15:33 | 显示全部楼层
莉子 发表于 2017-5-5 13:56
用rb的方式打开文件,然后pickle.load读取文件内容。
例如:
file = open("filename","rb")

大神,我用了'rb'的,但是仍然出现错误,,
file = open('D:\Python Play\boy_1.txt', 'rb')

错误显示的是:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    file = open('D:\Python Play\boy_1.txt', 'rb')
OSError: [Errno 22] Invalid argument: 'D:\\Python Play\x08oy_1.txt'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-6 00:19:49 | 显示全部楼层
你发的代码里明明是这个file = open(file_name)
你用了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-6 08:45:34 | 显示全部楼层
用xb试试  以写入以及二进制模式打开文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 12:05:18 | 显示全部楼层
gopythoner 发表于 2017-5-6 00:19
你发的代码里明明是这个file = open(file_name)
你用了?

在代码中的 file = open(file_name),这里的打开文件是直接用正常中文保存的文件呢
所以直接读取呀,
然后再另存到了其他的新建txt中,用二进制保存的,,
提问的是,再读取这些用二进制保存的文件,使用file = open('D:\Python Play\boy_1.txt', 'rb'),还是出错哎。。
就不知道怎么办了。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 17:35:32 | 显示全部楼层    本楼为最佳答案   
file = open(r'D:\Python Play\boy_1.txt', 'rb')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 19:10:15 | 显示全部楼层
莉子 发表于 2017-5-8 17:35
file = open(r'D:\Python Play\boy_1.txt', 'rb')

是的是的,输入这个之后,就能读取啦!
谢谢!!

不过,open(r'file_name', 'rb'),为什么这里要多一个r呀?因为设了路径吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-9 19:04:42 | 显示全部楼层
WeiChat阿威 发表于 2017-5-8 19:10
是的是的,输入这个之后,就能读取啦!
谢谢!!

有r的话系统就不会将“\”这个符号解释为转义了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-5 16:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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