#python #if-statement
#python #оператор if
Вопрос:
Я просмотрел много вопросов и перепробовал много предложений, но, похоже, я просто не могу заставить работать что-то простое. По сути, я хотел бы запустить свой скрипт в цикле. Если файл присутствует, распечатайте и повторите. Если файл отсутствует, перейдите в режим ожидания на 19 минут, а затем снова запустите скрипт. Я могу заставить часть «if» нормально работать при наличии файла. Когда файл отсутствует, ничего не происходит. Я также полностью запутался в создании цикла.
import os, shutil
import glob
import time
source = 'C:/File Location/Files'
files = os.listdir(source)
files = glob.iglob(os.path.join(' C:/File Location/Files ', "*.pdf"))
for file in files:
if os.path.isfile(file):
time.sleep(30)
print ("Success")
else:
time.sleep(1140)
Комментарии:
1. Что, по-вашему, «произойдет», когда программа перейдет в спящий режим на 19 минут?
2. Должна ли программа останавливаться, если находит файл, или просто продолжать печатать его как можно быстрее?
3. Итак, я установил время ожидания на 30 секунд вместо 19 минут, чтобы посмотреть, действительно ли он перешел в режим ожидания, а это не так. Когда во время выполнения части инструкции if выполняется time.sleep (30), мой курсор мыши показывает, что происходит процесс. Затем он печатает так, как должен. В части else ничего не происходит, нет курсора мыши, ничего.
4. Если он находит файл, он должен напечатать один раз. Затем я переместу файл в другую папку (дополнительный код, который я не включил, потому что это не проблема). Затем я хочу, чтобы он запускался снова в случае наличия нескольких файлов. Если нет дополнительных файлов, переходите в режим ожидания на 19 минут, а затем запускайте снова.
Ответ №1:
Самый простой способ сделать то, что, я думаю, вы хотите сделать, — это использовать schedule. Вы можете использовать это следующим образом:
schedule.every(60*19).seconds.do(<your file function>)
while True:
schedule.run_pending()
time.sleep(1)
Это будет запускать содержимое вашего файла раз в 19 минут.
Если вы действительно хотите печатать файл непрерывно, за исключением случаев, когда его нет, и в этом случае он отключается на 19 минут, вы можете использовать:
while True:
if os.path.isfile(file):
time.sleep(30)
print("Succes")
else:
time.sleep(19*60)