首页 > 代码库 > Python学习笔记——文件操作
Python学习笔记——文件操作
python中,一切皆对象。
一、文件操作流程
(1)打开文件,得到一个文件句柄(对象),赋给一个对象;
(2)通过文件句柄对文件进行操作;
(3)关闭文件。
文件对象f通过open()函数来创建。
open函数常用的三个参数:文件路径/名称、模式、encoding。
1 f = open(‘测试文件‘,‘r‘,encoding=‘utf-8‘)2 print(f.read())3 f.close()
二、open函数中模式参数的常用值
值 | 描述 |
‘r‘ | 读模式 |
‘w‘ | 写模式 |
‘a‘ | 追加(append)模式 |
‘b‘ | 二进制模式(可添加到其它模式中使用) |
‘+‘ | 读/写模式(可添加到其它模式中使用) |
在处理声音剪辑或者图像时,应该在模参数中增加‘b‘。参数‘rb‘可以用来读取一个二进制文件。
‘+‘模式与其它模式叠加使用:
值 | 描述 |
‘r+‘ | 读写模式。从光标0位置开始读,读完成后光标将停留在最后位置,然后再从该位置开始写。 |
‘a+‘ | 追加读模式。光标默认在最后位置。 |
‘w+‘ | 写读模式。先清空文件内容,再写读。 |
三、文件方法
close()
close()用于关闭一个已打开的文件对象,关闭后文件不能再进行读写操作。当file对象被引用到另一个文件时,Python会自动关闭之前的file对象。
read()
read(size)方法用于从文件中读取指定的字节数,如果未指定size,则读取所有。
1 f = open(‘test‘,‘r‘)2 print(f.read(5)) #读取5个字节3 f.close()
如果读取中文字符,则一个汉字被认为是一个字符。
readline()
readline()方法用于从文件中读取整行,包含“\n”字符。
如果指定了非负数的参数,则表示读取指定大小的字节数,包含“\n”字符。
readlines()
readlines()方法用于读取所有行(直到结束符EOF),并返回列表,这就意味着将读取的每一行当作列表中的一个元素。
如果碰到结束符EOF则返回空字符串。
1 f=open(‘小重山‘,‘a‘,encoding=‘utf8‘)2 print(f.readlines())#[‘昨夜寒蛩不住鸣。\n‘, ‘惊回千里梦,已三更。\n‘, ‘起来独自绕阶行。\n‘, ‘人悄悄,帘外月胧明。\n‘, ‘白首为功名,旧山松竹老,阻归程。\n‘, ‘欲将心事付瑶琴。\n‘, ‘知音少,弦断有谁听。‘]
write()
write()方法用于向文件中写入指定字符串。
在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,此时在文件中看不到写入的内容。
writelines()
该方法用于向文件中写入一序列的字符串。换行时需要指定换行符\n。
1 fo = open("test.txt", "w")2 print ("文件名为: ", fo.name)3 seq = ["Oliver\n", "alex"]4 fo.writelines( seq )
tell()
返回文件的当前位置,即文件指针当前位置。
seek()
用于移动文件读取指针到指定的位置。
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
truncate()
用于截断文件,如果指定了可选参数size,则表示截断文件为size个字符。如果没有指定size,则
flush()
用来刷新缓冲区,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要时被动的等待输出缓冲区写入。
一般情况下,文件关闭后会自动刷新缓冲区,但如果对数据安全要求较高,避免在突发断电时丢失数据,就需要在关闭前刷新它,这时就可以使用flush()方法。
进度条实例:
1 import sys,time2 for i in range(30):3 sys.stdout.write("*")4 sys.stdout.flush()5 time.sleep(0.1)
四、with语句
为了避免打开文件后忘记关闭,可以通过with语句来自动管理上下文。
1 with open(‘省市县_new‘,‘w‘,encoding=‘utf-8‘) as f_write:2 f_write.write(str(current_layer))
Python学习笔记——文件操作