|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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循环是判断一下,应该分别保存到那个文件,顺便计数!
|
|