在处理完数据后,通常是不是把这些数据都丢弃了,而是将之保存。这节学习将处理完成的数据进行保存。#sketch.txt
1. 打开文件处理后保存到新的文件中
代码语言:javascript复制man=[]
other=[]
try:
data=open('sketch.txt')
for each_line in data:
try:
(role,line_spoken)=each_line.split(':',1)
line_spoken=line_spoken.strip() #strip()从字符中去除不必要的空白符
if role=='Man':
man.append(line_spoken)
elif role=='Other Man':
other.append(line_spoken)
except ValueError:
pass
data.close()
except IOError:
print('The file is missing!')
try:
man_file=open('data_man.txt','w') #以“写”模式打开文件
other_file=open('data_other.txt','w') #如果这个文件不存在,程序会自动新建一个文件。如果该文件存在则会覆盖原文件
print(man,file=man_file) #file='存储文件名'
print(other,file=other_file)
man_file.close() #要记得关闭文件
other_file.close()
except IOError:
print('file Error!')
注意:写模式下,如果原来存在目标文件,程序会擦除文件里的原有数据,再进行写入。
如果不想修改原文件,想在后面追加,可以用'a'命令
代码语言:javascript复制man_file=open('data_man.txt','a')
2. 文件修改
考虑到程序可能在运行过程中出现问题,导致中途崩溃一些关键性的代码得不到执行,我们对代码做一些修改。存储数据到新文件中时,需要关闭文件,若程序崩溃则文件没关闭会让数据出错。将文件关闭代码移入finally中,这些代码在最后总能执行,这样能减少数据被破坏的可能性。
代码语言:javascript复制try:
man_file=open('data_man.txt','w')
other_file=open('data_other.txt','w')
print(man,file=man_file)
print(other,file=other_file)
except IOError:
print('File error!')
finally:
man_file.close()
other_file.close()
3. with语句
代码语言:javascript复制try:
with open('data_man.txt','w') as man_file:
print(man,file=man_file) #file='存储文件名'
with open('data_other.txt','w') as other_file:
print(other,file=other_file)
except IOError as err:
print('File error:' str(err))
4.