2016-09-27 2 views
-5

Я новичок в python. То, что я пытаюсь сделать, это расчесывать файл 'a' и файл 'b' в один файл LINE LINE.Python] объединить два текстовых файла в один (строка за строкой)

Например,

text file a = a ("\n") b("\n") c

text file b = 1("\n")2("\n") 3 

текстовый файл будет содержать новый a 1("\n") b 2("\n") c 3

def main(): 
    f1 = open("aaa.txt") 
    f2 = f1.readlines() 
    g1 = open("bbb.txt") 
    g2 = g1.readlines() 
    h1 = f2+g2 
    print(h1) 

Мне так жаль, что это мой первый раз, используя StackOverflow ..

+5

что вы пробовали? – Harsha

+0

Спасибо, что ответили. Я пробовал так много разных вещей, что, возможно, вы будете смеяться над: (я понял, как сделать («\ n») b («\ n») c ("\ n") 1 ("\ n") 1) 2 («\ n») 3, но я не смог найти нигде в google (строка за строкой) :( – user6886108

+0

Добро пожаловать в StackOverFlow user6886108 !!! Пожалуйста, проверьте эту ссылку - http://stackoverflow.com/help/how -to-ask –

ответ

0

Очки:

  • Открыть файл с помощью with. Не нужно закрывать файл.
  • Используйте zip функцию для объединения двух списков.

код без молнии с комментариями инлайн:

combine =[] 

with open("x.txt") as xh: 
    with open('y.txt') as yh: 
    with open("z.txt","w") as zh: 
     #Read first file 
     xlines = xh.readlines() 
     #Read second file 
     ylines = yh.readlines() 
     #Combine content of both lists 
     #combine = list(zip(ylines,xlines)) 
     #Write to third file 
     for i in range(len(xlines)): 
     line = ylines[i].strip() + ' ' + xlines[i] 
     zh.write(line) 

Содержание x.txt:

1 
2 
3 

Содержание y.txt:

a 
b 
c 

Содержание z.txt:

a 1 
b 2 
c 3 

код с функцией почтового индекса:

with open("x.txt") as xh: 
    with open('y.txt') as yh: 
    with open("z.txt","w") as zh: 
     #Read first file 
     xlines = xh.readlines() 
     #Read second file 
     ylines = yh.readlines() 
     #Combine content of both lists and Write to third file 
     for line1, line2 in zip(ylines, xlines): 
     zh.write("{} {}\n".format(line1.rstrip(), line2.rstrip())) 
+0

спасибо. что, если я хочу сделать z.txt a 1 ("\ n") b 2 ("\ n") c 3 ("\ n")? – user6886108

+0

not a ("\ n") 1 ("\ n") b ("\ n") 2 ("\ n") c ("\ n") 3 – user6886108

+0

Проверить обновленный код –

0

Подробнее об обработке файлов и использовании in-bui lt эффективно функционирует. Для вашего запроса только с помощью h1 = f2+g2 это не так.

a=open('a.txt','r').readlines() 
b=open('b.txt','r').readlines() 
with open('z.txt','w') as out: 
    for i in range(0,10): #this is for just denoting the lines to join. 
     print>>out,a[i].rstrip(),b[i] 
+0

wow .. ты сделал свой день. работая над этой проблемой со вчерашнего дня. Чтобы написать новый файл о том, что вы сделали, что мне делать вместо печати (a [i] .rstrip(), b [i])? Я знаю, что я должен начать с newfile = open ("new", "w") – user6886108

+0

Что делать, если строки более 10? –

+0

@ user6886108 @Dinesh Вместо 10 вы можете использовать len файла a или файл b, который имеет наименьшее количество строк. Когда вы используете, у которого больше строк, чем у другого. Эти строки ('print a [i] .rstrip(), b [i]') будут вызывать ошибку. –

Смежные вопросы