马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小甲鱼写了一个讲对话分成6个txt文件的程序如下: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('record.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('record.txt')
我的问题如下:1. for each_line in f为什么不是一个字符一个字符的迭代,而是一行一行的迭代?
2.关于函数的参数为什么save_file函数里面的参数是boy,gilr,count;spilt_file()里面是file_name?为什么不直接写sabe_file()和spilt_file()把中间的参数都略掉?
1,在Python 2.2以后,我们可以直接对一个file对象使用for循环读每行数据。
2,因为函数定义里面用到这些参数呀!比如save_file里,boy, girl, count都被使用了呀。
写那个for循环是判断一下,应该分别保存到那个文件,顺便计数!
|