ТАКИХ членов ... как я могу прочитать последний json файл в каталоге только один раз (если нет нового файла, напечатать что-нибудь). Пока что я могу только читать последний файл ... Пример скрипта (запускается каждые 45 минут) ниже открывает и читает последний файл json в каталоге. В этом случае последний файл - это файл 3. json (файл json создается каждые 30 минут). Таким образом, если файл4 по какой-то причине не создан (например, серверу не удалось создать новый файл json). Если скрипт запустится снова .. он все равно будет читать тот же последний файл3.
файлов в каталоге
file1.json
file2.json
file3.json
Приведенный ниже скрипт может открывать и читать последний json файл, созданный в каталоге.
import glob
import os
import os.path
import datetime, time
listFiles = glob.iglob('logFile/*.json')
latestFile = max(listFiles, key=os.path.getctime)
with open(latestFile, 'r') as f:
mydata = json.load(f)
print(mydata)
Чтобы скрипт был читать только самый новый файл и читать только один раз ... только что-то ниже: -
listFiles = glob.iglob('logFile/*.json')
latestFile = max(listFiles, key=os.path.getctime)
if latestFile newer than previous open/read file: # Not sure to compare the latest file with the previous file.
with open(latestFile, 'r') as f:
mydata = json.load(f)
print(mydata)
else:
print("no new file created")
Спасибо за вашу помощь. Примером решения было бы хорошо поделиться.
Я не могу найти решение ... кажется простым, но несколько дней безуспешно пробуют ошибки.
(1)Make sure read latest file in directory
(2)Make sure read file/s that may miss to read (due to script fail to run)
(3)Only read once all the files and if no new file give warning.
Спасибо.
После обсуждения и предложения SO у меня было мало способов решить или, по крайней мере, удовлетворить некоторые требования. Я просто перемещаю файлы, которые были обработаны. Если файл не создан, скрипт ничего не запустит, а если скрипт не удастся, и после нормализации он запустится и прочитает все доступные файлы. Я думаю, что это хорошо на данный момент. Спасибо, парень ...