1. 文件的一般格式
myFile = open(文件名,处理模式,输出缓存)
- 处理模式为可选,默认为'r'。处理模式有'a':追加模式,追加模式属于写模式,不可读;'r':只读模式;'w':只写模式,删除文件已有内容后,开始写。
- f = open('data.txt', 'r+'),表示可读可写,多种操作模式用'+'连接。
- f = open('data.txt', 'a'),表示在文件尾部追加内容打开文件。
- 输出缓存为可选,可传入0,表示无输出缓存,也就是执行write方法后直接传给文件。
- file是open的同义词,也就是可以写成myFile = file(文件名,处理模式,输出缓存)
2. 常用方法
s = myFile.read() #把整个文件读到一个字符串中 s = myFile.read(N) #读取N个字节到一个字符串 s = myFile.readline() #读取一行到一个字符串(包括行末指示符'\n') sList = myFile.readlines()#读取整个文件到字符串列表,一行一个字符串 myFile.write(s) #写入字符串到文件 myFile.writelines(sList) #把列表中所有字符串写入文件 myFile.seek(N) #修改文件位置到偏移N处
3. 文件的输入输出
当执行read或write时,文件指针都会往后移动,当同时为可读可写模式时,则共享同一个文件指针。
f.read(1) #文件指针移到偏移1 f.read(1) #再执行一次f.read(1)后,文件指针移到偏移2 f.read(1) #文件指针移到偏移1 f.write('x') #'x'插入到偏移1处,文件指针移到偏移2
- 从文件读取的数据回到脚本中时是一个字符串,如果需要的话,需要手动转换文件格式,如字符串到数字。
- 当把数据写入文件时,python不会自动把对象转换成字符串,如输出数字时,需要先将数字转换成字符串。
- Python标准库pickle模块能够让我们直接在文件中储存Python对象,而不需要在字符串间转换数据类型。
import pickle pickle.dump(D, F)#往文件F中写入对象D E = pickle.load(F)#从文件F中读取对象到E
- struct模块能够构造并解析打包的二进制数据
- eval(s)#eval方法能够将字符串当作可执行的代码,换句话说就是把字符串转换成Python代码(Python是边解释边执行的)