|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
根据老师上课时,所打印的代码,这些代码的问题在哪里?而且 在for循环中print boy列表的循环,无任何打印
- f = open('E:\\redoct.txt','r')
- boy = []
- girl = []
- count = 1
- for each_line in f:
- if each_line[:6] != '======':
-
- (role,spoken)= each_line.split(':',1)
-
- if role == '小甲鱼':
- boy.extend(spoken)
- print boy##这个没有任何打印
- if role == '小客服':
- girl.append(spoken)
- print girl
- else:
- file_boy_name = 'boy_' + str(count) + '.txt'
- file_girl_name = 'girl_' + str(count) + '.txt'
- print file_boy_name
- boyf = open('file_boy_name','w')
- girlf = open('file_girl_name','w')
- boyf.writelines(boy)
- girlf.writelines(girl)
- boyf.close()
- girlf.close()
- boy = []
- girl = []
- count += 1
- f.close()
复制代码
这个代码写的有不少问题,
1. 首先print函数如果是python 3的话,应该是要用括号的,例如print(x) 而不是print x(如果是python 2.x 那当我没说)
2. 其次在21,22行这里,如果按照你这个写法,那么打开的文件,其文件名会是'file_boy_name'和'file_girl_name'而不是'boy_' +str(count) + '.txt'
对这些基本语法,我稍微帮你改了改,你修改下文件目录应该就能跑了
- f = open('D:\\record.txt','r')
- boy = []
- girl = []
- count = 1
- for each_line in f:
- if each_line[:6] != '======':
-
- (role,spoken)= each_line.split(':',1)
-
- if role == '小甲鱼':
- boy.append(spoken)
- print(boy)
- if role == '小客服':
- girl.append(spoken)
- print(girl)
- else:
- file_boy_name = 'boy_' + str(count) + '.txt'
- file_girl_name = 'girl_' + str(count) + '.txt'
- print(file_boy_name)
- boyf = open(file_boy_name,'w')
- girlf = open(file_girl_name,'w')
- boyf.writelines(boy)
- girlf.writelines(girl)
- boyf.close()
- girlf.close()
- boy = []
- girl = []
- count += 1
- f.close()
复制代码
3. 这个程序还会错过第二个=======之后的内容(这个问题你自己想想看)
|
|