2015-06-17 4 views
1

Как создать новый текстовый файл каждый раз, когда я запускаю следующую программу? Я хочу собирать данные каждые 5 секунд, но я не хочу перезаписывать первый текстовый файл. Я также использую функцию time.sleep(5).Новый текстовый файл при каждом запуске с помощью Python

fobj_out = open("Tabelle.txt", "w")         
fobj_out.write("Orte chron.: [Höhe in m, Temp. in °C, rel. Feuchte in %, Niederschlag in mm, Sonnenschein in %]\n") 

for key in sorted(unserdictionary.iterkeys()):      
    print("%s: %s" % (key, unserdictionary[key]))     
    fobj_out.write("%s: %s\n" % (key, unserdictionary[key])) 
fobj_out.close 

Есть ли простой способ?

+1

Создайте файл и добавьте текущее время к имени файла. Таким образом, вы будете иметь другое имя файла каждый раз – putvande

+0

Вы можете продолжать использовать один файл, когда вы * добавляете * к нему, а не полностью переписываете его содержимое (открывайте с помощью '' a'' вместо '' w''). – mkrieger1

ответ

1

Вы можете получить текущее время и добавить его к имени файла.

from time import gmtime, strftime 
actual_time = strftime("%Y-%m-%d %H-%M-%S", gmtime()) 

fobj_out = open("Tabelle - " + str(actual_time) + ".txt", "w")         
fobj_out.write("Orte chron.: [Höhe in m, Temp. in °C, rel. Feuchte in %, Niederschlag in mm, Sonnenschein in %]\n") 

for key in sorted(unserdictionary.iterkeys()):      
    print("%s: %s" % (key, unserdictionary[key]))     
    fobj_out.write("%s: %s\n" % (key, unserdictionary[key])) 
fobj_out.close 

вы получите выходы следующим образом:

Tabelle - 2015-01-01 21-15-13.txt 
Tabelle - 2015-01-01 21-20-13.txt 
+0

Спасибо, это то, что мы думали, но я пробовал это, я получил эту ошибку: строка 96, в fobj_out = open ("Tabelle -" + str (actual_time) + ".txt", "w") IOError: [ Errno 22] неверный режим ('w') или имя файла: 'Tabelle - 2015-06-17 09: 13: 04.txt' – Hadouken

+0

@Hadouken Извините, это произошло из-за ':' времени. Пожалуйста, проверьте мой обновленный ответ. –

+0

Вау, большое вам спасибо, он отлично работал. – Hadouken

0

Вы можете получить текущее время, а затем добавить, что к имени файла, вы можете использовать time модуль для получения времени. Код будет как -

from time import time 
s = str(round(time() * 1000)) 
fobj_out = open("Tabelle" + s + ".txt", "w") 
0

первой проверки, если файл уже существует, и затем создать его или просто добавить к уже существующему файлу.

import os.path 

if(os.path.isfile("Tabelle.txt")): 
    obj_out = open("Tabelle.txt", "a") # Append to the file 
else: 
    obj_out = open("Tabelle.txt", "w") # create the file 

# do the rest here.... 
+0

Использование 'open' с' 'a'' также создаст файл, поэтому нет необходимости проверять, существует ли файл. – mkrieger1

Смежные вопросы