首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在for循环之外返回值

在for循环之外返回值
EN

Stack Overflow用户
提问于 2016-04-28 13:33:44
回答 4查看 277关注 0票数 0

我有一个文本文件:

代码语言:javascript
运行
复制
[admin]# cat /etc/passwd
root:!:0:0::/:/usr/bin/ksh
daemon:!:1:1::/etc:
bin:!:2:2::/bin:
sys:!:3:3::/usr/sys: 
adm:!:4:4::/var/adm:
uucp:!:5:5::/usr/lib/uucp: 
guest:!:100:100::/home/guest:
nobody:!:4294967294:4294967294::/:
lpd:!:9:4294967294::/:
lp:*:11:11::/var/spool/lp:/bin/false 
invscout:*:200:1::/var/adm/invscout:/usr/bin/ksh
nuucp:*:6:5:uucp login user:/var/spool/uucppublic:/usr/sbin/uucp/uucico
paul:!:201:1::/home/paul:/usr/bin/ksh
jdoe:*:202:1:John Doe:/home/jdoe:/usr/bin/ksh 

这里还有一些代码

代码语言:javascript
运行
复制
with open(file) as f2:
            for lines in f2:
                if "cat /etc/passwd" in lines:
                    for i in range(3):
                        cat = f2.readline()
                        print(cat)

如果它找到字符串"cat /etc/passwd",它将在变量cat中存储下几行

产出:

代码语言:javascript
运行
复制
root:!:0:0::/:/usr/bin/ksh
daemon:!:1:1::/etc:
bin:!:2:2::/bin:

如果我在for循环中调用cat,情况就是如此。如果我在for循环之外调用它,我只得到最后一行:

代码语言:javascript
运行
复制
bin:!:2:2::/bin:

我认为for i in range(3)行是造成这种情况的原因。有没有一种方法可以在循环之外调用cat并让它返回我想要打印的每一行?

EN

Stack Overflow用户

回答已采纳

发布于 2016-04-28 13:38:22

代码语言:javascript
运行
复制
cat = []
with open(file) as f2:
    for lines in f2:
        if "cat /etc/passwd" in lines:
            for i in range(3):
                cat.append(f2.readline())

print cat

阅读有关python列表的文章。

票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36916299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档