stupidroot Ответов: 1

Как добавить из текстового файла строку за строкой в этот код с помощью цикла for?


Этот код показывает размеры и имена файлов каталога. Я хочу добавить {description} из текстового файла (descriptiontext).




Исходный код выглядит следующим образом:



import os
import glob

textfilename = 'textfilename'

with open(textfilename, 'a') as textfile:  # Open the text file for appending
    for filename in glob.iglob('*.pdf'):  # For every file in the current directory matching '*.pdf'
        stat = os.stat(filename)  # os.stat gets various file statistics
        filesize = stat.st_size
        textfile.write(f'File {filename} has size {filesize} bytes\n')  # \n means newline


Задача состоит в следующем:

Добавьте в последнюю строку {description} то, что является производным от другого текстового файла с именем descriptiontext.
Таким образом, каждая строка descriptiontext заняла место в последней строке в месте {description} с циклом for.

Я не знаю, как спрягать два цикла for.

Что я уже пробовал:

Я попытался вложить второй цикл for В первый, но он добавляет только последний элемент descriptiontext, последнюю строку.

Вложенный цикл был:

with open(descriptiontext, 'r') as textfile2:
            for line in textfile2:
                description = line

1 Ответов

Рейтинг:
1

Richard MacCutchan

Вы можете использовать метод readline для чтения файла по одной строке за раз: см. 7. Входной и выходной документации Python 3.7.7 [^]. Таким образом, ваш код должен быть примерно таким:

descriptiontext = open("descriptiontext", 'r')
with open(textfilename, 'a') as textfile:  # Open the text file for appending
    for filename in glob.iglob('*.pdf'):  # For every file in the current directory matching '*.pdf'
        stat = os.stat(filename)  # os.stat gets various file statistics
        filesize = stat.st_size
        description = descriptiontext.readline()
        textfile.write(f'File {filename} has size {filesize} bytes : {description}\n')  # \n means newline


stupidroot

Решение почти полностью хорошее, только раздел "как текстовый файл" не нуждается в нем в первой строке.
Спасибо!

Richard MacCutchan

Исправленный.