【Python学习日记】B站小甲鱼:文件
文件的打开模式(open的参数)
文件对象的方法
f.close() 关闭文件
f.read(size = -1) 读出size个字符
f.readline() 按行读取文本
f.tell() 可以返回当前指针的位置
f.seek(offset, from) 在文件中移动指针,从from开始移动offset个字节。比如f.seek(0,0)可以把指针重置到首位
list() 可以把文件内容变成列表
用下面的方法按行可以读取出文件的内容
for eachline in f: print(eachlie)
文件的写入
f.write() 在写完执行f.close()以后就可以写入文件
f.write() 按行写
练习-文件分割
def save_file(chuang,bb,count): file_name_chuang = 'chuang_' + str(count) + '.txt' file_name_bb = 'bb_' + str(count) + '.txt' chuang_file = open(file_name_chuang, 'w', encoding="utf-8") bb_file = open(file_name_bb, 'w', encoding="utf-8") chuang_file.writelines(chuang) bb_file.writelines(bb) chuang_file.close() bb_file.close() def split_file(filename): f = open(filename,"rt", encoding="utf-8") chuang = [] bb =[] count =1 for eachline in f: if eachline[:6] != '======': #字符串分隔 (role,linespoken) = eachline.split(':',1) if role =='闯': chuang.append(linespoken) if role == '彬彬': bb.append(linespoken) else: save_file(chuang,bb,count) chuang = [] bb = [] count +=1 save_file(chuang,bb,count) f.close() split_file('record.txt')
这个练习的操作文件是一个以 “=======”为分割行的对话,闯说一句,bb说一句。通过冒号:将文件的每一行进行分隔,写入新的文件保存。
使用了两个方法 分隔split_file()和保存save_file()