簡體   English   中英

將輸入數據讀入 csv 文件

[英]Read input data to csv file

我正在做一個 BeagleBone 項目,它可以測量傳感器的溫度。 我想將數據保存到 csv 文件中。 我是編程和 Python 的新手,我有點迷茫。 我已經在谷歌搜索了一段時間,發現對我有幫助的東西很少。 所以我想問這個問題。 如何每秒將新數據寫入 csv 文件?

import Adafruit_BBIO.ADC as ADC
import time
import csv

sensor_pin = 'P9_40'

ADC.setup()

while True:
    reading = ADC.read(sensor_pin)
    millivolts = reading * 1800  # 1.8V reference = 1800 mV
    temp_c = (millivolts - 500) / 10
    temp_f = (temp_c * 9/5) + 32
    print('mv=%d C=%d F=%d' % (millivolts, temp_c, temp_f))

    time.sleep(1)

    # field names 
    fields = ['Milivolts', 'Celsius'] 


    # data rows of csv file
    rows = [ [millivolts,"|", temp_c]]

    # name of csv file
    filename = "textfile.csv"

    # writing to csv file
    with open(filename, 'w') as csvfile:
        # creating a csv writer object
        csvwriter = csv.writer(csvfile)

        # writing the fields 
        csvwriter.writerow(fields)

        # writing the data rows
        csvwriter.writerows(rows)

要應用的一種修復方法是以append模式打開文件,這樣文件內容就不會在每一步都被覆蓋; 只需在這一行中將'w'更改為'a'

with open(filename, 'a') as csvfile:

請注意,如果沒有任何 output 和/或您遇到的問題的描述,將很難為您提供更多幫助。

老實說,除了訂單之外,我沒有看到代碼有什么問題。

您編寫它的方式,每次迭代循環時,您都以寫入模式打開文件,這會擦除文件。 所以如果我猜對了,你可能在 CSV 中只有一行。

以下只是重新排序,它應該可以工作。 請注意,我將字段放在循環之前,因為您只想要一次。

請記住,每次運行程序時,它都會啟動一個新的 csv。 如果您希望它保留歷史記錄而不考慮中斷/重新啟動,只需刪除這些字段,然后使用open(filename, 'a')代替。

由於這是數據內容,如果您要進行很長時間,您可能希望將time.time()作為每一行的一部分。 這樣你就可以看到停機時間等。

import Adafruit_BBIO.ADC as ADC
import time
import csv

sensor_pin = 'P9_40'

ADC.setup()

# name of csv file
filename = "textfile.csv"
with open(filename, 'w') as csvfile:
    # creating a csv writer object
    csvwriter = csv.writer(csvfile)
    
    # writing the fields 
    csvwriter.writerow(['Milivolts', 'Celsius'])

    while True:
        reading = ADC.read(sensor_pin)
        millivolts = reading * 1800  # 1.8V reference = 1800 mV
        temp_c = (millivolts - 500) / 10
        temp_f = (temp_c * 9/5) + 32

        # writing the data rows
        rows = [ [millivolts,"|", temp_c]]
        csvwriter.writerows(rows)
        
        time.sleep(1)

暫無
暫無

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

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