文件处理流程1.打开文件得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件r模式默认模式文件不存在则报错w模式文件不存在则创建文件存在则覆盖a模式文件不存在则创建文件存在则不会覆盖写内容会以追加的方式写写日志文件的时候常用追加模式是一种特殊的写模式b(rb,wb,ab)模式不用加encoding:utf-8基本操作打开文件1open(path, flag[, encoding][, errors])path:要打开文件的路径flag:打开文件的方式r 以只读的方式打开文件文件的描述符放在文件的开头rb 以二进制格式打开一个文件用于只读文件的描述符放在文件的开头r 打开一个文件用于读写文件的描述符放在文件的开头w 打开一个文件只用于写入如果该文件已经存在会覆盖如果不存在则创建一个新文件wb 打开一个文件只用于写入二进制如果该文件已经存在会覆盖如果不存在则创建一个新文件w 打开一个文件用于读写如果该文件已经存在会覆盖如果不存在则创建一个新文件a 打开一个文件用于追加如果文件存在文件描述符将会放在文件末尾aencoding:编码格式errors:错误处理123pathrC:\Users\Desktop\file1.txt#ignore 忽略错误fopen(path,r,encodinggbk)打开文件的模式有r 只读模式【默认模式文件必须存在不存在则抛出异常】w只写模式【不可读不存在则创建存在则清空内容】x 只写模式【不可读不存在则创建存在则报错】a 追加模式【可读 不存在则创建存在则只追加内容】 表示可以同时读写某个文件r 读写【可读可写】w写读【可读可写】x 写读【可读可写】a 写读【可读可写】b表示以字节的方式操作rb 或 rbwb 或 wbxb 或 wbab 或 ab注以b方式打开时读取到的内容是字节类型写入时也需要提供字节类型不能指定编码读文件内容1234567891011121314151617181920212223242526# 1、读取文件全部内容str1f.read()print(str1)# 2、读取指定字符数str2f.read(10)print(*str2*)str3f.read(10)print(*str3*)# 3、读取整行包括\n字符str4f.readline()print(str4)str5f.readline()print(str5)# 4、读取指定字符数str6f.readline(10)print(str6)# 5、读取所有行并返回列表list7f.readlines()print(list7)# 6、若给定的数字大于0返回实际size字节的行数list8f.readlines(20)print(list8)# 7、修改描述符的位置f.seek(10)str9f.read()print(str9)关闭文件f.close()1234567# 一个完整的过程try:f1open(path,r, encodinggbk)print(f1.read())finally:iff1:f1.close()12withopen(path,r,encodinggbk) as f2:print(f2.read())写文件1234567891011pathrC:\Users\Desktop\file4.txtfopen(path,w)# 1、将信息写入缓冲区f.write(lee is a good man)# 2、刷新缓冲区# 直接把内部缓冲区的数据立刻写入文件而不是被动的等待自动刷新缓冲区写入f.flush()f.write(lee is a good man\n)f.close()withopen(path,a) as f:f.write(good man)123456withopen(a.txt,w) as f:passwithopen(a.txt,r) as read_f,open(b.txt,w) as write_f:dataread_f.read()write_f.write(data)1234567891011pathrC:\Users\yanji\Desktop\day7\test1withopen(path,wb) as f3:strlee is a good manf3.write(str.encode(utf-8))withopen(path,rb) as f2:dataf2.read()print(data)print(type(data))newDatedata.decode(utf-8)print(newDate)print(type(newDate))到此这篇关于Python 文件操作方法总结的文章就介绍到这了