python基础语法文件操作

111 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

文件操作

open方法,创建一个新文件并打开,或者打开一个已经存在的文件,第一个参数是文件路径,第二个参数是文件模式,w可写,r可读,a追加。 示例

fp=open('test.txt','w');
fp.write("hello world")
fp.close()

可以用乘法来表示字符串写入多少次循环,这就很wocao了

fp=open('test.txt','w');
fp.write("wocao\n" * 7)
fp.close()

w+覆盖文本 r+从文本中开头使用新写入的数据覆盖 a+从文本中后面插入新写入的数据

文件读操作 第二个参数传入r,就可以对文件对象进行读操作了, read方法默认是一个字节一个字节的读,效果比较慢,readline可以读取一行,readlines会读取所有行的数据,返回一个list集合,每个元素是每行数据的data

fp=open('test.txt','r');
content=fp.readlines();
print(content)

序列化和反序列化

  1. 序列化

对象类型的数据如枚举,元组,等是不能写入文件的,要先将它们转换成字符序列才可以。叫做序列化。然后读取它们时,再将这些字符序列转回原来的数据格式。叫做反序列化

json对象有dumps方法,可以将对象转化成字符序列

fp = open('test.txt', 'w')
list = ['我是羊', '我是狼']
import  json
content=json.dumps(list)
print(content)
fp.write(content)

dump方法,在将对象转换成字符串的同时,指定一个文件对象,然后将转换后的数据写入到这个文件中,可以把上面两个步骤合并成一个步骤。如果最终目的是写入文件,就非常适合这个方法。

fp = open('test.txt', 'w')
list = ['我是羊', '我是狼']
import  json
content=json.dump(list,fp)
print(content)
  1. 反序列化 json.loads方法,可以将字符序列转换成对象类型
fp = open('test.txt', 'r')
content=fp.read()
import json
list=json.loads(content)
print(list)

json.load方法,可以接受一个文件对象,自动读取其内容并转换成对象类型,可以将上面json.loads读文件的操作合二唯一。

fp = open('test.txt', 'r')
import json
list=json.load(fp)
print(list)

操作完文件切勿忘记close操作。因为计算本身承受了很多计算压力,再打开过多的文件,最终一定会承受不住而死机的。