Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 1, 2018 18:34:33

SomethingButNotNickName
Зарегистрирован: 2017-12-19
Сообщения: 75
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с файлами

Добрый день.
Для автоматизации некоторых действий пишу простенькие скрипты на питон. Общая логика такая:
1) Получить список папок;
2) Пройти циклом по списку папок заглядывая в каждую папку
3) Получить список файлов внутри папки;
4) Пройти циклом по списку файлов выполняя требуемые действия.
Получение списков убрано в функцию.
Периодически возникают ошибки FileNotFoundError: . Т.е. я написал скрипт, перебор файлов в нем работает, но есть ошибка во время выполнения целевого действия (пункт 4 в схеме выше). Я начитаю править алгоритм этого действия и внезапно собираю ошибки. FileNotFoundError: . Потом еще какое-то количество правок ОПЯТЬ же главного действия и ошибки FileNotFoundError: исчезают. Часть кода, отвечающую за перебор файлов я не трогал уже хрен знает сколько времени. Собственно код.

 import json
import os
import string
from mp3_tagger import VERSION_2, MP3File
def func_list_mp3_files():
    return [f for f in os.listdir('.') if os.path.isfile('.' + '\\' + f)
            and f.endswith('.mp3')]
def func_list_dirs():
    return [f for f in os.listdir('.') if os.path.isdir('.' + '\\' + f)]
def func_main():
    for folder in func_list_dirs():
        os.chdir(os.path.join('.', folder))
        for file in func_list_mp3_files():
            try:
                some code
            except Exception as error:
                print (error)
        os.chdir('..')

Может ли это быть связано с “занятостью” папок/файлов сторонними процессами windows? И если может как запретить Windows лезть туда?

Отредактировано SomethingButNotNickName (Апрель 1, 2018 18:38:21)

Офлайн

#2 Апрель 1, 2018 20:31:27

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

Работа с файлами

Добрый вечер , для Ваших целей не подходит os.walk ?

 import os
path = "c:\\python"
for root, dirs, files in os.walk(path):
    pass # Тут Ваш обработчик 

Офлайн

#3 Апрель 2, 2018 01:28:21

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа с файлами

SomethingButNotNickName
и внезапно собираю ошибки. FileNotFoundError
В таких случаях нужно на экран выводить директории, в которых ты ищешь файл, чтобы убедиться, что всё правильно. Чаще всего вывод окажется совсем не тем, что ты ожидаешь в воображении.

Скорее всего, что-то в “some code”.

Зачем ты делаешь имена в форме .\name ? Это не добавляет ничего, все эти join'ы можно убрать.



Отредактировано py.user.next (Апрель 2, 2018 01:29:47)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version