У меня есть этот текстовый файл:возвращение значения вне для цикла
[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:
Это случай, если я вызываю cat
из цикла for. Если я называю это вне цикла, я получаю только последнюю строку:
bin:!:2:2::/bin:
Я предполагаю, что линия for i in range(3)
является причиной этого. есть ли способ, которым я могу позвонить cat
за пределы петель и вернуть его каждой из строк, которые я хочу напечатать?
Это то, что вы хотите? http://stackoverflow.com/questions/1767513/read-first-n-lines-of-a-file-in-python – JETM