2016-05-24 3 views
4

Я хочу взять список слов из textfile1.txt и заменить слово «пример» на textfile2.txt тем, что текст находится в строке 1, строке 2 и т. Д. Как бы Я делаю это?Python Search text file & replace

Текстовый файл textfile1.txt

user1 
user2 
user3 
user4 
user5 

Текстовый файл textfile2.txt

url/example 
url/example 
url/example 
url/example 
url/example 

То, что я до сих пор

#!/usr/bin/env python3 
import fileinput 

with fileinput.FileInput("textfile2.txt", inplace=True) as file: 
    for line in file: 
     print(line.replace("example", "user1"), end='') 

Моя цель:

url/user1 
url/user2 
url/user3 

ответ

4

Это должно сделать это. В общем случае, если вы хотите пройти 2 или более итераций (списки, файлы и т. Д.) Параллельно, вы можете использовать zip.

with open('textfile1.txt') as f1, open('textfile2.txt') as f2: 
    for l, r in zip(f1, f2): 
     print(r[:r.find('/')+1] + l) 
+3

Хорошо. Но, возможно, используйте 'izip' (или Python 3), поэтому не нужно читать все содержимое двух файлов ... – dawg

+1

Вы имели в виду' print (r [: r.find ('/') + 1] + l) ' –

+0

Хе-хе, да, я сделал, @Moses Koledoye. dawg, OP использует Python 3, но у вас есть точка. –

0

Я бы открыть первый файл и читать каждую строку в массив: ['user1', 'user2', ...]

Затем, когда вы будете читать 2-й файл, следить за ваш номер строки. Индексируйте в массив на основе номера строки и используйте эту строку в качестве вашей строки замены.

Или используйте ответ zip(), который также прекрасен.