f = open('file的路径',mode='rt') //地址'e:\\xxx'或者'e:/' mode打开模式
f.read() //读取文件内容,指针指到末尾
创建写入关闭
f = open('E:\\test.txt', 'w')
f.write('abcdefg') //要写入内容,要注意文件打开模式是w
f.close() //忘记关闭文件会被系统回收
打印每一行
for each_line in f:
print(each_line)
文件打开模式
打开模式 | 执行操作 |
'r' | 以只读方式打开文件(默认) |
'w' | 以写入的方式打开文件,会覆盖已存在的文件 |
'x' | 如果文件已经存在,使用此模式打开将引发异常 |
'a' | 以写入模式打开,如果文件存在,则在末尾追加写入 |
'b' | 以二进制模式打开文件 |
't' | 以文本模式打开(默认) |
'+' | 可读写模式(可添加到其他模式中使用) |
'U' | 通用换行符支持 |
文件对象方法
文件对象方法 | 执行操作 |
f.close() | 关闭文件 |
f.read([size=-1]) | 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回 |
f.readline([size=-1]) | 从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符 |
f.write(str) | 将字符串str写入文件 |
f.writelines(seq) | 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象 |
f.seek(offset, from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节 |
f.tell() | 返回当前在文件中的位置 |
f.truncate([size=file.tell()]) | 截取文件到size个字节,默认是截取到文件指针当前位置 |
f = open('recoed.txt')
boy = []
girl = []
for each_line in f: #对每一行读取
if each_line[:6] != '====='
(role, line_spoken) = each_line.split(':', 1) #对每一行分割,':'前的为role,后为line_spoken
if role == '小甲鱼':
boy.append(line_spoken) #加入到boy列表中
if role == '小客服':
girl.append(line_spoken)
else:
file_name_boy = 'boy_' + str(count) + '.txt' #文件名
file_name_girl = 'girl_' + str(count) + '.txt'
boy_file = open(file_name_boy, 'w') #创建文件,并准备写入
girl_file = open(file_name_girl, 'w')
boy_file.writelines(boy) #写入boy列表
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
boy = [] 重置列表
girl = []
count += 1
file_name_boy = 'boy_' + str(count) + '.txt' #最后一段没有==,所以重复一次保存
file_name_girl = 'girl_' + str(count) + '.txt'
boy_file = open(file_name_boy, 'w')
girl_file = open(file_name_girl, 'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
f.close() #关闭文件
最后用函数封装