Python 泡菜模块
Python pickle module
我没用过,但我想我听说 pickle 模块在文件中保留了数据结构。所以我想尝试一下,但我的代码出错了
这是我的代码:
import pickle
with open("test.txt", "w") as f:
pickle.dump(12.3, f)
with open("test.txt", "r") as f:
x = pickle.load(f)
print(x)
每当我 运行 这段代码时,我都会收到错误消息 有人可以告诉我为什么我使用 python 3.9.5
正如其他人评论的那样,您需要使用 'wb'
和 'rb'
以二进制模式与文件交互。此外,由于您的文件是二进制文件而不是文本文件,因此最好不要使用 .txt
扩展名;使用 .pickle
扩展名是惯例。其实现如下所示:
import pickle
with open('data.pickle', 'wb') as f:
pickle.dump(12.3, f)
pickle.dump([1, 2, 3], f)
with open('data.pickle', 'rb') as f:
x = pickle.load(f)
print(f'{x}, of type {type(x)}')
y = pickle.load(f)
print(f'{y}, of type {type(y)}')
`
import pickle
import os
os.chdir("C:\Users\user\Desktop")
f = open("test.txt", "wb")
data = 12.3
pickle.dump(data, f)
pickle.dump([1, 2, 3], f)
f.close()
f = open("test.txt", "rb")
x = pickle.load(f)
print(x)
print(type(x))
y = pickle.load(f)
print(y)
print(type(y))
f.close()
`
我没用过,但我想我听说 pickle 模块在文件中保留了数据结构。所以我想尝试一下,但我的代码出错了 这是我的代码:
import pickle
with open("test.txt", "w") as f:
pickle.dump(12.3, f)
with open("test.txt", "r") as f:
x = pickle.load(f)
print(x)
每当我 运行 这段代码时,我都会收到错误消息 有人可以告诉我为什么我使用 python 3.9.5
正如其他人评论的那样,您需要使用 'wb'
和 'rb'
以二进制模式与文件交互。此外,由于您的文件是二进制文件而不是文本文件,因此最好不要使用 .txt
扩展名;使用 .pickle
扩展名是惯例。其实现如下所示:
import pickle
with open('data.pickle', 'wb') as f:
pickle.dump(12.3, f)
pickle.dump([1, 2, 3], f)
with open('data.pickle', 'rb') as f:
x = pickle.load(f)
print(f'{x}, of type {type(x)}')
y = pickle.load(f)
print(f'{y}, of type {type(y)}')
`
import pickle
import os
os.chdir("C:\Users\user\Desktop")
f = open("test.txt", "wb")
data = 12.3
pickle.dump(data, f)
pickle.dump([1, 2, 3], f)
f.close()
f = open("test.txt", "rb")
x = pickle.load(f)
print(x)
print(type(x))
y = pickle.load(f)
print(y)
print(type(y))
f.close()
`