Объединение текстовых файлов (TXT-файлов) со списком в Python? - PullRequest
0 голосов
/ 12 декабря 2018

Предположим, у меня есть два текстовых файла: 1.txt и 2.txt

Содержимое 1.txt как:

['Hi', 'I', 'am']

и

Содержимое2.txt as:

['a', 'boy']

Как объединить то же самое и записать то же самое в новый файл, используя время, скажем, 3.txt, которое должно выглядеть следующим образом:

['Hi', 'I', 'am', 'a', 'boy']

Я пытался:

import os

file_list = os.listdir("path")
with open('out.txt', 'a+') as outfile:
   for fname in file_list:
       with open(fname) as infile:
          outfile.write(infile.read())

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вы можете попробовать что-то вроде этого:

inputText = []
for file in ['1.txt','2.txt']:
    with open(file,'r') as file:
        inputText.extend(file.readlines()+['\n'])
with open ('3.txt','w') as output:
    for line in inputText:
        output.write(line)

или

with open ('3.txt','w') as output:
    for file in ['1.txt','2.txt']:
        with open(file,'r') as file:
            for line in file:
                output.write(line)
            output.write('\n')

Отредактировано на ваш комментарий:

import re
inputList = []
for file in ['1.txt','2.txt']:
    with open(file,'r') as infile:
        for line in infile:
            inputList.extend(re.sub('[^A-Za-z0-9,]+', '', line).split(","))
print(inputList)
with open('3.txt','w') as outfile:
    for line in inputList:
        outfile.write(line + '\n')
0 голосов
/ 12 декабря 2018

Вы можете использовать модуль json для загрузки json из файла, поэтому у вас будет список, не содержащий строки.
Вам просто нужно объединить список с помощью оператора + и сохранить его:

import json

final_result = []
for file in ["1.txt", "2.txt"]:
    with open(file, 'r') as fd:
        final_result += json.load(fd)

with open("3.txt", 'w') as fd:
    json.dump(final_result, fd)
...