文件的操作
文件的打开模式
打开模式 | 执行操作 |
---|---|
‘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代表文件末尾) |
f.tell() | 返回当前在文件中的位置 |
f.truncate([size=file.tell()]) | 截取文件到size个字节,默认是截取到文件指针当前位置 |
例子要求:
把文件中的内容以=============
为界限,分为三段文字;每一段文字保留两个文件,一个是小甲鱼
说的内容,另一个是小客服
说的内容。
需要操作的文件内容:
小客服:小甲鱼,今天有客户问你有没有女朋友?
小甲鱼:咦??
小客服:我跟她说你有女朋友了!
小甲鱼:。。。。。。
小客服:她让你分手后考虑下她!然后我说:“您要买个优盘,我就帮您留意下~”
小甲鱼:然后呢?
小客服:她买了两个,说发一个货就好~
小甲鱼:呃。。。。。。你真牛!
小客服:那是,谁让我是鱼C最可爱小客服嘛~
小甲鱼:下次有人想调戏你我不阻止~
小客服:滚!!!
================================================================================
小客服:小甲鱼,有个好评很好笑哈。
小甲鱼:哦?
小客服:“有了小甲鱼,以后妈妈再也不用担心我的学习了~”
小甲鱼:哈哈哈,我看到丫,我还发微博了呢~
小客服:嗯嗯,我看了你的微博丫~
小甲鱼:哟西~
小客服:那个有条回复“左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,so easy _”
小甲鱼:T_T
================================================================================
小客服:小甲鱼,今天一个会员想找你
小甲鱼:哦?什么事?
小客服:他说你一个学生月薪已经超过12k了!!
小甲鱼:哪里的?
小客服:上海的
小甲鱼:那正常,哪家公司?
小客服:他没说呀。
小甲鱼:哦
小客服:老大,为什么我工资那么低啊??是时候涨涨工资了!!
小甲鱼:啊,你说什么?我在外边呢,这里好吵吖。。。。。。
小客服:滚!!!
程序代码
# 打开文件
f = open("Wenjian.txt")
# 小甲鱼说的内容
boy = []
# 小客服说的内容
girl = []
# 区分文件命名的数字
count = 1
for each_line in f:
if each_line[:6] != '======':
# 角色以及说的内容通过冒号分割
(role, line_spoken) = each_line.split(':', 1)
if role == '小甲鱼':
boy.append(line_spoken)
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)
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()
程序执行后结果:
- boy_1.txt
咦??
。。。。。。
然后呢?
呃。。。。。。你真牛!
下次有人想调戏你我不阻止~
- boy_2.txt
哦?
哈哈哈,我看到丫,我还发微博了呢~
哟西~
T_T
- boy_3.txt
哦?什么事?
哪里的?
那正常,哪家公司?
哦
啊,你说什么?我在外边呢,这里好吵吖。。。。。。
- girl_1.txt
小甲鱼,今天有客户问你有没有女朋友?
我跟她说你有女朋友了!
她让你分手后考虑下她!然后我说:“您要买个优盘,我就帮您留意下~”
她买了两个,说发一个货就好~
那是,谁让我是鱼C最可爱小客服嘛~
滚!!!
- girl_2.txt
小甲鱼,有个好评很好笑哈。
“有了小甲鱼,以后妈妈再也不用担心我的学习了~”
嗯嗯,我看了你的微博丫~
那个有条回复“左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,so easy _”
- girl_3.txt
小甲鱼,今天一个会员想找你
他说你一个学生月薪已经超过12k了!!
上海的
他没说呀。
老大,为什么我工资那么低啊??是时候涨涨工资了!!
滚!!!