@happyjuic

Откуда эта функция берет эти файлы?

Есть такая функция:
def Parse():
    
    #Поиск всех .zip архивов в папке со скриптом:
    archives = []
    print("Ищу все .zip архивы в корневой папке...")
    for file in os.listdir():
        if file.endswith(".zip"):
            archives.append(file)
    print(f"Архивов найдено... {len(archives)}")

    #Создание итогового тектового документа с данными
    output = open(f'Results{len(archives)}.txt', 'w')

    #Работа с архивами
    for i in range(len(archives)):
        file = ZipFile(archives[i], 'w')
        content = file.read("discord.txt")
        print(content)


Все просто - сначала получаю все архивы, и закидываю их в список. Дальше в цикле бегаю по каждому архиву и ищу текстовые файлы с N названием. Но при запуске функции получаю ошибку, что файла дискорд.тхт в архиве нету, решил посмотреть через дебагер, так вот программа откуда-то берет вообще pdf-файл. Решил через дебагер посмотреть список archives, и вот что: В списке только .zip файлы, я не могу понять, откуда он берет pdf файл???

Его просто нигде нет в дебагере, я все переменные просмотрел. Откуда появляется не пойму
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
честно, сам не знаю откуда там pdf файлы, но у тебя есть явные ошибки в коде.
ты открываешь файл в режиме для записи («w»). если ты хочешь читать то нужно открывать в режиме для чтения («r»).
до:
file = ZipFile(archives[i], 'w')


после:
file = ZipFile(archives[i], 'r')


и зачем так усложнять твой цикл? ты итерируешься по длинне списка и получаешь его элемент по индексу. разве не проще итерироваться сразу по списку?

код цикла до:
#Работа с архивами
    for i in range(len(archives)):
        file = ZipFile(archives[i], 'w')
        content = file.read("discord.txt")
        print(content)


код цикла после:
#Работа с архивами
    for archive in archives:
        file = ZipFile(archive, 'r')
        content = file.read("discord.txt")
        print(content)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы