打开或者关闭文件使用open()函数
打开代码:
fo = open("D:/io/a/picture.png","rb")#第一个参数是你要访问文件的路径,第二个参数是打开文件的模式。
第二个参数详解:
r:以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式。
rb:以二进制打开一个文件用于只读,同上下划线部分。
r+:打开一个文件用于读写,文件的指针将会放在文件的开头。
rb+:以二进制打开一个文件用于读写,同上下划线部分。
w:打开一个文件只用于写入,如果文件已存在,则将其覆盖,如果文件不存在,则创建新文件。
wb:以二进制打开一个文件用于写入,同上下划线部分。
w+:打开一个文件只用于读写,如果文件已存在,则将其覆盖,如果文件不存在,则创建新文件。
wb+:以二进制打开一个文件用于读写,同上下划线部分。
a:打开一个文件用于追加,如果该文件已存在,文件将会写入已有内容后面,如果该文件不存在,则创建新
文件进行写入。
ab:以二进制格式打开一个文件用于追加,同上下划线部分。
a+:打开一个文件用于读写,如果该文件已存在,文件将会写入已有内容后面,如果该文件不存在,则创建新
文件进行读写。
ab+:以二进制格式打开一个文件用于追加,同上下划线部分。
读取:
read(n=-1):直接读取n字节到字符串中,不指定n则全部读完
readline():读取打开文件的一行, 包括行结束符(去掉:line.strip())
readlines():读取所有剩余行,作为字符串列表返回
示例代码:
f = open("D:/io/a/文件原名称.txt")
of = open("D:/io/b/文件新名称.txt","w")
line = f.readline()
for line in f:
print(line)
of.write(line)
print("传文件成功")
序列化与反序列化:
通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长。
并且需要时可以再次将这个对象读取出来。Python3中有几个常用模块可实现这一功能。
pickle模块:
存储在变量中
dumps():返回存入的字节
a = {'name': 23, 'age': '19'}
b = pickle.dumps(a)
print(b)
输出:
b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01K\x17X\x03\x00\
x00\x00ageq\x02X\x02\x00\x00\x0019q\x03u.'
loads():读取数据
c= pickle.loads(b)
print(c)
存储在文件中:
序列化:
with open('D:/io/b/b.txt', 'wb') as f:
a = {'name': '张三', 'age': 19}
pickle.dump(a, f)
反序列化:
with open('D:/io/b/b.txt', 'rb') as f:
aa = pickle.load(f)
print(aa)
print(type(aa))
输出结果:
<class 'dict'>