|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
count = 1
boy = []
girl = []
f = open('G://record.txt')
for eachline in f:
if eachline[:6] != '======':
(role,line_spoke) = eachline.split(':',1)
if role == '小客服':
boy.append(line_spoke)
if role == '小甲鱼':
girl.append(line_spoke)
else:
boy_part_name = 'boy_'+ str(count) + '.txt'
girl_part_name = 'girl_' + str(count) + '.txt'
boy_file = open(boy_part_name,'a')
girl_file = open(girl_part_name,'a')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
boy = []
girl = []
count += 1
boy_part_name = 'boy_'+ str(count) + '.txt'
girl_part_name = 'girl_' + str(count) + '.txt'
boy_file = open(boy_part_name,'a')
girl_file = open(girl_part_name,'a')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
f.close()
改用函数封装:
我的写法是
def save_file():
boy_part_name = 'boy_'+ str(count) + '.txt'
girl_part_name = 'girl_' + str(count) + '.txt'
boy_file = open(boy_part_name,'a')
girl_file = open(girl_part_name,'a')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
def split_file(file_name):
count = 1
boy = []
girl = []
f = open(file_name)
for eachline in f:
if eachline[:6] != '======':
(role,line_spoke) = eachline.split(':',1)
if role == '小客服':
boy.append(line_spoke)
if role == '小甲鱼':
girl.append(line_spoke)
else:
save_file()
boy = []
girl = []
count += 1
save_file()
f.close()
split_file('G://record.txt')
运行后报错
Traceback (most recent call last):
File "G:\029.py", line 37, in <module>
split_file('G://record.txt')
File "G:\029.py", line 28, in split_file
fun()
File "G:\029.py", line 3, in fun
boy_part_name = 'boy_'+ str(count) + '.txt'
NameError: name 'count' is not defined
正确写法:
def save_file(boy,girl,count):
boy_part_name = 'boy_'+ str(count) + '.txt'
girl_part_name = 'girl_' + str(count) + '.txt'
boy_file = open(boy_part_name,'a')
girl_file = open(girl_part_name,'a')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
def split_file(file_name):
count = 1
boy = []
girl = []
f = open(file_name)
for eachline in f:
if eachline[:6] != '======':
(role,line_spoke) = eachline.split(':',1)
if role == '小客服':
boy.append(line_spoke)
if role == '小甲鱼':
girl.append(line_spoke)
else:
save_file(boy,girl,count)
boy = []
girl = []
count += 1
save_file(boy,girl,count)
f.close()
split_file('G://record.txt')
我不理解 封装过后无非就是形成了一个闭包,在内部函数save_file()里,对外部作用域(但不是在全局作用域)的变量(boy,girl,count)进行引用,为什么会显示count 、boy 、girl 未被定义呢?
求指教 |
|