У меня есть сервер, установленный в моей ОС Ubuntu, в котором есть два каталога: «dump» и «processing».Как только файлы Excel копируются в папку «dumped», мой сценарий обрабатывает их, чтобы поместить их в базу данных MS SQL, а затем перемещает эти файлы в «обработанные».Должен ли я создать какой-то конвейер для случая, когда для обработки присутствуют сотни файлов?Есть ли более эффективный способ сделать это?
В настоящее время я делаю получение имен всех вновь добавленных файлов в dict.Затем скрипт выбирает один файл за раз и обрабатывает его.Это модифицированная версия кода Тима Голдена из этой записи
def monitor_dumped():
"""Returns the files added to dump folder since its last modification time in the form
of a dict
"""
mod_time = os.path.getmtime(folder_to_monitor) # no. of seconds since epoch
m = datetime.datetime.fromtimestamp(mod_time) # change time format for difference computation
currentDT = datetime.datetime.now() # current system time
tslm = currentDT - m # time_since_last_modification
need = False
before = dict(\[(f, None) for f in os.listdir(folder_to_monitor)\])
if (tslm.seconds > 5):
need = True
else:
print("It hasn't been 5 seconds yet.")
while need:
time.sleep(10)
after = dict(\[(f, None) for f in os.listdir(folder_to_monitor)\])
added = \[f for f in after if not f in before\]
if added: print("Added: ", ", ".join(added))
before = after
need = False
return before
Я надеюсь достичь этой же функциональности с большей модульностью и производительностью.