小甲鱼 发表于 2022-4-7 04:18:03

已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览 购买主题

小古比鱼 发表于 2022-4-16 18:07:20

本节首先讲了with语句(上下文管理器),其为文件操作提供了一种更为优雅的操作方式,确保资源的释放,既省去了手动关闭文件的麻烦,还可避免程序出错时数据未能写入文件的悲哀。随后讲了pickle模块,其用于解决Python对象的永久存储问题,允许将字符串、列表、字典等Python对象序列化,保存为文件的形式。所谓序列化,就是将Python对象转换为二进制字节流的过程。pickle模块中的dump()函数可将Python对象写入扩展名为pkl的二进制文件,load()函数则用于读取二进制文件,将其还原为Python对象。因二进制文件无法被文本文件编辑器正常读取,这一过程有点类似于使用二进制对Python对象进行加密和解密,神奇又有趣!

fishcyou 发表于 2022-5-5 19:34:18

这是本节知识的一个案例(瞎改了网上的一段代码):
from urllib import request
import time

message = '''Welcome WebRequest:
请输入网址,会自动开始采集网页代码
采集完成会在目录下自动生成一个text文件
'''
message1 = '''正在读取...'''
message2 = '''读取完成!'''
print(message)
web = str(input('请输入要读取的网址:'))
print(message1)
start = time.time()
response = request.urlopen(web)
with open("RequestWeb.txt", 'w') as f:
    f.write(str(response.read()))
print(message2)
stop= time.time()
print(f"本次一共耗费了 {(stop-start):.2f} 秒.")

migu_sm1 发表于 2022-11-11 23:57:09

Learning...{:10_261:}

阿辉崽崽 发表于 2022-11-28 19:17:32

import pickle

x, y, z = 1, 2, 3
s = "FishC"
l = ["小甲鱼", 520, 3.14]
d = {"one": 1, "two": 2}

with open("data.pkl", "wb") as f:
    pickle.dump(x, f)
    pickle.dump(y, f)
    pickle.dump(z, f)
    pickle.dump(s, f)
    pickle.dump(l, f)
    pickle.dump(d, f)

with open("data.pkl","wb") as f:
    x,y,z,s,l,d = pickle.load(f)
    print(x,y,z,s,l,d,sep="\n")
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\1.py", line 17, in <module>
    x,y,z,s,l,d = pickle.load(f)
io.UnsupportedOperation: read
求救求救

418323317 发表于 2022-12-15 19:34:20

{:10_266:}{:10_266:}{:10_266:}{:10_266:}
问答题答案:



动动手答案:


andyleesh 发表于 2023-1-7 08:34:30

打卡

jiangwei0719 发表于 2023-4-20 16:13:04

请问二进制文件怎么打开
页: [1]
查看完整版本: 第055讲:永久存储(下)