Как записать данные в «версии файла» вместо записи в один файл в Python? - PullRequest
0 голосов
/ 06 октября 2018

Я читаю данные датчика и сохраняю их в файле следующим образом:

with open('serial_data.txt','a') as f:

Проблема в том, что если я пять раз напишу код, он добавится в тот же файл.Я хочу, чтобы данные каждого теста были в отдельном файле, например, если я запускаю код четыре раза, он должен быть сохранен как: "serial_data_1.txt" , "serial_data_2.txt" , "serial_data_3.txt" , "serial_data_4.txt" ..... Есть ли способ сделать это?

Ответы [ 3 ]

0 голосов
/ 06 октября 2018

Я предлагаю вам написать цикл в вашем коде как:

for x in range(1, numberOfTest):
    with open("serial_data_{0}.txt".format(x),'a') as f
0 голосов
/ 06 октября 2018

Если вы хотите создать новые файлы с вашими данными в нем, вы должны использовать тег 'w +' в вашей открытой функции следующим образом:

    # Looping and creating multiple files
    for i in range(1, 4):
        # Using 'w+' to create file with such name if
        # it doesn't actually exit
        f = open('serial_data_{}.txt'.format(i), 'w+')
        # Now you can write any data to your file
        f.write('{} squared is {}'.format(i, i*i))
        # Close your file
        f.close()

Это даст 3 файласо следующим содержанием:

  • serial_data_1 = "1 в квадрате равно 1"
  • serial_data_2 = "2 в квадрате равно 4"
  • serial_data_3 = "3 в квадрате равно 9"

Примечание. Файлы необходимо закрыть после записи.Кроме того, использование 'w +' будет перезаписывать файлы при каждом его запуске, используйте 'a' вместо 'w +', если вы хотите добавить / добавить к текущим данным файла.

Надеюсь, это помогло:)

0 голосов
/ 06 октября 2018

Я бы предложил использовать параметры CLI

import sys

run = sys.argv[1]
with open('serial_data_{}.txt'.format(run), 'a') as f:

Затем сделать python app.py 1 для первого запуска

Как читать / обрабатывать аргументы командной строки?

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

...