Копировать из файла, пока не будет найдена определенная строка маркера - PullRequest
0 голосов
/ 21 октября 2010

Я пытаюсь написать какой-нибудь код, который откроет List1.txt и скопирует содержимое до тех пор, пока не увидит строку 'John smith' до List2.txt.

Это то, что у меня так далеко:

F=open('C:\T\list.txt','r').readlines()
B=open('C:\T\list2.txt','w')
BB=open('C:\T\list2.txt','r').readlines()
while BB.readlines() == 'John smith':
    B.writelines(F)

Вот пример того, что может содержать List1.txt:

Natly molar
Jone rock
marin seena
shan lra
John smith
Barry Bloe
Sara bloe`

Однако, похоже, это не работает.Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 21 октября 2010
from itertools import takewhile

with open('List1.txt') as fin, open('List2.txt', 'w') as fout:
    lines = takewhile(lambda x : x != 'John smith\n', fin)
    fout.writelines(lines)
1 голос
/ 21 октября 2010
F=open('C:\T\list1.txt','r')
B=open('C:\T\list2.txt','w')
for l in F: #for each line in list1.txt
    if l.strip() == 'John Smith':  #l includes newline, so strip it
        break
    B.write(l)

F.close()
B.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...