簡體   English   中英

如何在Python中使用日期和時間戳記錄和保存文件

[英]How to log and save file with date and timestamp in Python

我試圖通過外殼程序執行的Python代碼使用Raspberry Pi 3從DS18B20傳感器記錄溫度。

我想用時間戳記錄溫度,然后保存文件。

我目前正在將其保存為在代碼中輸入的文件名,但是我想用文件名中的日期和時間戳記錄該文件。

情況1:當我在代碼中放入文件名時,可以一遍又一遍地將數據追加到同一文件中,但是如果不編輯代碼就無法開始新的單獨日志記錄。

#Writes data to file
def write_temp(temperature):
        with open("/home/pi/temp.csv", "a") as log:
                log.write("{0},{1}\n".format(strftime("%Y-%m-%d %H:%M:%S"),str(temperature)))

問題在於該文件始終為temp.csv,並且每次都會附加數據。

情況2 :我嘗試從時間戳獲取文件名,但是每秒鍾都會生成一個新文件。

def write_temp(temperature):
        filename1 = strftime("%Y-%m-%d %H:%M:%S")
        #filename1 = sys.argv[1]
        with open('%s.csv' % filename1, 'a') as log:
                log.write("{0},{1}\n".format(strftime("%Y-%m-%d %H:%M:%S"),str(temperature)))

在上述情況下,我希望在每次記錄開始時或記錄結束時設置文件名。 我還想名保存為對數的DateTime,而不僅僅是日期時間。 我通過做('"Log-" + %s.csv' % filename1, 'a')而不是('%s.csv' % filename1, 'a')嘗試此操作,但是沒有解決。

理想情況:我希望文件名是WORD- DateTime ,其中WORD作為命令行參數發送,如下所示:

sudo python TTLogging.py WORD

您能指出我要去哪里了嗎? 如果需要的話,我可以分享我工作的全部代碼,因為這是一項學習練習。

嘗試:

with open('Log-%s.csv' % filename1, 'a') as log:

情況2中 ,每次調用write_temp ,都會使用時間戳填充filename1

因此,考慮一下,例如,您在10:15:13 (hh:mm:ss)調用了它,那么filename1將是10-15-13.csv 當您在10:15:14再次調用它時, filename1將是10-15-14.csv

這就是為什么要創建新文件。

解決方案:temp_write取出filename1 ,然后將filename作為參數傳遞給該函數。

from datetime import *
import sys

def write_temp(temperature,file_name):

        print ("In write_temp function - "+file_name)

        with open(file_name, 'a') as log:
                log.write("{0},{1}\n".format(datetime.now().strftime("%Y-%m-%d %H:%M:%S"),str(temperature)))


arg = sys.argv[1]
filename1 = str(arg) + "-" + datetime.now().strftime("%Y-%m-%d-%H-%M-%S")+".csv"
print ("File name is "+filename1)
write_temp(1,filename1)

在控制台上輸出:

C:\Users\dinesh_pundkar\Desktop>python c.py LOG
File name is LOG-2016-09-27-11-03-16.csv
In write_temp function - LOG-2016-09-27-11-03-16.csv

C:\Users\dinesh_pundkar\Desktop>

LOG-TimeStamp.csv的輸出:

2016-09-27 10:47:06,1
2016-09-27 10:47:06,3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM