Automati c распознает новый файл и получает путь - PullRequest
0 голосов
/ 27 февраля 2020

Я написал сценарий python, который непрерывно считывает CSV-файл, выводимый и обновляемый датчиком, и в реальном времени отображает некоторые данные с помощью matplotlib. Каждый раз, когда я начинаю запись данных с датчика, он создает новый файл, такой как:

data-2020_02_27_14_42_29.csv

Так что каждый раз мне приходится обновлять свой скрипт, чтобы он указывал на правильный файл CSV. Как я могу автоматизировать это? Есть ли способ распознать создание нового файла в указанном каталоге c и взять его имя?

with open('/home/matteo/Documents/PlatformIO/Projects/200213-123258-INS/data/data-2020_02_27_14_42_29.csv', 'r') as csv_file:
        csv_reader=csv.DictReader(csv_file, delimiter=',')

Спасибо

1 Ответ

0 голосов
/ 27 февраля 2020

Вы можете получить список файлов, которые были в начале и в конце вашего скрипта, а затем получить новый элемент, сравнив два списка.

def read(file):
    folder='/home/matteo/Documents/PlatformIO/Projects/200213-123258-INS/data'
    start_list=[file for file in os.listdir(folder)]
    with open(os.path.join(folder,file), 'r') as csv_file:
            csv_reader=csv.DictReader(csv_file, delimiter=',')

    #any other code that happens after reading the csv....

    end_list=[file for file in os.listdir(folder)]

    new_file=list(set(start_list)-set(end_list))

    #checks that a new file was found (if nothing new list is empty)
    #if it is empty, re-run function on existing file
    if new_file!=[]
        new_file=new_file[0]
    else:
        new_file=file

    #recursion to call the function on the new file we found
    read(new_file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...