打开或者关闭文件使用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'>