2014-11-17 3 views
2

Я новичок в Python и пытаюсь объединить файлы, которые в настоящее время существуют вместе в одном списке, в один файл.Python: Объединение файлов в список

У них одни и те же колонны. То, что у меня есть выглядит примерно так:

File_A
ABC
1 ...
2 ...
3 ...

File_B
ABC
4 ...
5 ...
6 ...

И то, что я хочу, чтобы создать это:

File_C
ABC
1 ...
2 ...
3 ...
4 ...
5 .. .
6 ...

То, что я пытался это (в списке "файлы"):

import fileinput 
with open(file_c,'w') as fout: 
    for line in fileinput.input(file_a, file_b): 
     fout.write(line); 

Нет кубиков. Я в конечном итоге повторяю строки на вечность.

Я пробовал другой код, но безрезультатно. Я знаю, что я делаю что-то глупое, но я недостаточно осведомлен, чтобы знать, что это такое.

Спасибо.

+0

Я полагаю, это 'csv' файлы? – Beginner

ответ

4

Просто итерацию по каждому объекту файла и записывать строки в новый файл:

with open("input1.txt") as f, open("input2.txt") as f2,open("output.txt","w") as f3: 
    f2.next() # skip header to avoid writing A B C twice 
    for line in f: 
     f3.write(line) 
    f3.write("\n") # separate last line from file 1 and first of file 2 
    for line in f2: 
     f3.write(line) 
+0

+1 для использования 'with' :) – Hackaholic

+0

@Hackaholic, спасибо. :) –

+0

Спасибо! Я ценю вашу помощь. –

0

В зависимости от того, как долго работает этот процесс, вы могли бы уйти с

with open('output.txt', 'w') as out: 
    out.writelines(open('file_a').readlines()) 
    out.writelines(open('file_b').readlines()[1:]) 
Смежные вопросы