Python - объединение текстовых файлов в нескольких подпапках - PullRequest
2 голосов
/ 01 апреля 2020

У меня есть папка с несколькими подпапками. В каждой подпапке у меня есть несколько файлов .txt.

for root, dirs, files in os.walk(path):
    print(files)
Out:
['1.txt', '2.txt', '3.txt', '4.txt']
['1.txt', '2.txt', '3.txt', '4.txt', '5.txt', '6.txt', '7.txt', '8.txt']
['1.txt', '2.txt', '3.txt', '4.txt', '5.txt', '6.txt']
['1.txt', '2.txt', '3.txt', '4.txt', '5.txt']

Я хочу объединить текстовые файлы в каждой подпапке и вернуть каждый в виде одной строки.

Я пробовал следующее:

for root, dirs, files in os.walk(path):
    for file in files:
        if file.endswith('.txt'):
            with open(os.path.join(root, file), 'r') as f:
                text = f.read()

Однако, Я получаю текст для каждого файла TXT в виде отдельных строк. Я хочу, чтобы они были либо в списке для каждой подпапки (как указано выше), либо объединяли каждый текст в подпапке в одну строку и получали вывод из 4 строк вместо 23.

1 Ответ

2 голосов
/ 01 апреля 2020

Вы можете использовать конкатенацию строк на каждой итерации чтения следующим образом:

for root, dirs, files in os.walk(path):
    text = ''
    for file in files:
        if file.endswith('.txt'):
            with open(os.path.join(root, file), 'r') as f:
                text += f.read()
    print(text)
...