我们一般在写程序的时候为了降低电脑出现突发状况,导致我们程序丢失的情况出现,我们一般都会在过一段时间之后就CTRL+S,保存我们的代码。
windows是以扩展名来判断文件的类型
在python中我们用open来打开文件.
1、open()打开文件函数
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
我们一般会用前两个参数:第一个参数是要打开的文件的名称、第二个参数是使用什么方式打开文件
下面列举几种常见的方式:
打开模式 | 执行操作 |
'r' | 以只读的方式打开文件(默认) |
'w' | 以写入的方式打开文件,会覆盖已存在的文件 |
'x' | 如果文件已经存在,使用此模式打开将会引起异常 |
'a' | 以写入模式打开,如果文件存在,则在末尾追加写入 |
'b' | 以二进制模式打开文件 |
't' | 以文本模式打开(默认) |
'+' | 可读写模式(可添加到其他模式中使用) |
'U' | 通用换行符支持 |
文件对象的 操作方法:
文件对象 | 执行操作 |
f.close() | 关闭文件 |
f.read(size = 1) | 从文件中读取size个字符,当未给定size或 给定负值的时候,读取剩余的所有字符 ,然后作为字符串返回 |
f.readline() | 读取文件的一行 |
f.write(str) | 将字符串str写入文件 |
f.writelines(seq) | 向文件写入字符串序列seq,seq应该是一个返回字符串的可 迭代对象 |
f.seek(offset,from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表文件当前位置,2代表文件末尾)偏移offset个字节 |
f.tell() | 返回文件指针在当前文件中的位置 |
运用一下上面的知识:
>>> f = open('E:\\test.txt','r')
>>> f.read()
'我爱的是你不是他,希望你能明白,\n我不想醒着醉,可疼老师估计快发\n过来看班门弄斧扣话费地表径流看\n不到妇女节你就可获得女里的后覅\n地方你看的看法,。和数据adndf\nlksdhvijnfvl.dkvvndivkhsd;lhi\n发动力和法国队 等你回复了收到\n货的空间划分'
>>> f.read()
''
>>> f.seek(10,0)
10
>>> f.tell()
10
>>> f.read(10)
'不是他,希望你能明白'
>>> f.readline()
',\n'
>>> f.seek(0,0)
0
>>> f.readline()
'我爱的是你不是他,希望你能明白,\n'
>>> f.close()
>>>
如果我们想要对一个文件写入那么我们要注意的是,在我们 打开文件的时候,就要以写入的方式打开。
>>> f = open('E:\\t.txt','w')
>>> f.write('给我麻木的酒,醒着醉')
10
>>> f.close()
对文件进行写入操作的时候值得注意的一点是,我们写完之后要记得close
如果 我们想让文件按照原本的方式显示出来,我们可以借助for来实现:
>>> f = open('E:\\test.txt','r')
>>> for each_line in f:
print(each_line)
我爱的是你不是他,希望你能明白,
我不想醒着醉,可疼老师估计快发
过来看班门弄斧扣话费地表径流看
不到妇女节你就可获得女里的后覅
地方你看的看法,。和数据adndf
lksdhvijnfvl.dkvvndivkhsd;lhi
发动力和法国队 等你回复了收到
货的空间划分
>>>
下面看一下代码:
def save_file(boy,girl,count):
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()
def split_file(file_name):
f = open('file_name')
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:
save_file(boy,girl,count)
boy = []
girl = []
count += 1
save_file(boy,girl,count)
f.close()
split_file(file_name)