鱼C论坛

 找回密码
 立即注册
查看: 3198|回复: 5

python 29课 for each_line in f 迭代不清楚

[复制链接]
发表于 2016-9-12 12:59:44 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 wow7jiao 于 2016-9-12 15:14 编辑

f = open('record.txt')

boy = []
girl = []
count = 1

for each_line in f:
    if each_line[:6] != '======':#  每次迭代会把列表中的一个元素弹出来,这个为什么一次是弹出一行,record是列表
,里面的内容又没有用逗号分隔。      

========================================================

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:
        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()

最佳答案

查看完整内容

for循环这里轮询的是f这个文件对象TextIOWrapper,你说的列表和f一样都是迭代对象,他们实现不同而以 f的实现是一行行的返回,列表的实现是返回一个个元素,字符串返回的是一个个字符
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-12 12:59:45 | 显示全部楼层
for循环这里轮询的是f这个文件对象TextIOWrapper,你说的列表和f一样都是迭代对象,他们实现不同而以

f的实现是一行行的返回,列表的实现是返回一个个元素,字符串返回的是一个个字符
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-12 14:41:15 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-12 14:41:48 | 显示全部楼层
,,

评分

参与人数 1鱼币 -5 收起 理由
无符号整形 -5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-12 17:43:23 | 显示全部楼层
学习中,浅见:

for XXX in YYY 用的地方是可迭代的对象
包含了列表,字典,字符串,甚至是自己定义的可迭代的对象,总之不是非要列表

字符串举例
>>> a="blabla"
>>> for each_line in a:
        print(each_line)
b
l
a
b
l
a

python可能有个文本类
这个类封装了read( ),readline( ),__iter__之类的方法
这个类的迭代结果是对象文本的每一行
f = open('record.txt')这步操作用'record.txt'这个文件创建了文本类一个实例对象

至于python是不是把它做成了字符串的列表,或者是怎么加工处理这个文件的
对于for each_line in f:这步来说,不重要

求轻喷
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-13 13:23:14 | 显示全部楼层
实时
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-22 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表