我有一个文本文件:
[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 这里还有一些代码
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中存储下几行
产出:
root:!:0:0::/:/usr/bin/ksh
daemon:!:1:1::/etc:
bin:!:2:2::/bin:如果我在for循环中调用cat,情况就是如此。如果我在for循环之外调用它,我只得到最后一行:
bin:!:2:2::/bin:我认为for i in range(3)行是造成这种情况的原因。有没有一种方法可以在循环之外调用cat并让它返回我想要打印的每一行?
发布于 2016-04-28 13:38:22
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列表的文章。
https://stackoverflow.com/questions/36916299
复制相似问题