|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
新手求助!零基础Python 第29讲中 ,我按照小甲鱼课件中讲解的代码自己写了一遍。却发现部分代码功能不能执行,找了好久没发现问题点。求指导!
小甲鱼讲解中,这段代码会执行出 :“boy_1.txt” , "boy_2.txt" , "girl_1.txt" , "girl_2.txt"
我自己写的代码 仅会执行出:“file_name_boy” , “file_name_girl” . 文件内容打开后是 "record.txt"文件中的第二段内容,按照男女拆分的功能是实现的。
我自己感觉是for 循环执行出了问题。
代码执行没有报错,但是代码段中在 “for each_line in f ”这行 的中 “f” , 出现有异常提示:“Expect 'collections.Iterable , got 'TextIO' instead” 。
这种文本文件 应该是可以做迭达的呀
代码如下:
- f = open('D://record.txt')
- boy = []
- girl = []
- count = 1
- for each_line in f:
- if each_line[:6] != '======':
- #进行字符串分割识别
- (role,content) = each_line.split(':',1)
- if role == '小客服':
- girl.append(content)
- if role == '小甲鱼':
- boy.append(content)
- else:
- # 进行文字分段存储
- file_name_boy = 'boy_' + str(count) + '.txt'
- file_name_girl = 'girl_' + str(count) + '.txt'
- boy_file = open('D://file_name_boy','w')
- girl_file = open('D://file_name_girl','w')
- boy_file.writelines(boy)
- girl_file.writelines(girl)
- boy_file.close()
- girl_file.close()
- boy = []
- girl = []
- count += 1
- f.close()
复制代码
执行结果是:
下面是完整代码:
- f = open('D://test.txt')
- boy = []
- girl = []
- count = 1
- for each_line in f:
- if each_line[:6] != '======':
- #进行字符串分割识别
- (role,content) = each_line.split(':',1)
- if role == '小客服':
- girl.append(content)
- if role == '小甲鱼':
- boy.append(content)
- 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)
- boy_file.close()
- girl_file.close()
- f.close()
复制代码
|
-
执行结果
|