-
目的
利用Python对文件中的数据进行分割,按照以下方式保存: -
小芳的对话保存为 girl_*.txt 文件
-
小明的对话保存为 boy_*.txt 文件
-
第一段对话保存为 girl_1.txt 和 boy_1.txt,第二段保存为 girl_2.txt 和boy_2.txt…
-
准备工作
文件如下,文件名为test.txt
- 代码1
原始的写法:
f = open('H:\\Python project\\test.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)
f.close()
- 代码2
将重复使用的代码封装成一个函数,使得代码更加简洁
def save_file(A, B, 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(A) # 将字符串序列写入文件
girl_file.writelines(B)
boy_file.close() # 关闭文件
girl_file.close()
def split_file(file_name): # 将分割文件的代码封装成一个函数
f = open('H:\\Python project\\test.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: # 分别对文件进行保存操作
save_file(boy,girl,count)
boy = []
girl = []
count +=1
save_file(boy,girl,count)
f.close()
split_file('H:\\Python project\\test.txt') # 直接调用整个分割函数
- 结果展示
这里只给出部分结果,利用博客记录下自己以前学的东西~~