【问题标题】:writing to csv while output keeps being updated在输出不断更新时写入 csv
【发布时间】:2018-10-20 16:12:53
【问题描述】:

现在,打印线从我的传感器读取电压并每 50 毫秒将其打印在屏幕上。当代码中断时,我想将其输出到 CSV 文件。当输出已经确定时,我阅读了有关如何输出到 CSV 文件的其他教程,但是当我需要读取带电电压时,我无法弄清楚如何写入 csv 文件。

这是我无法适应我的代码的答案:writing print output to csv file

from ABE_ADCDACPi import ADCDACPi
import time

adcdac = ADCDACPi()
adcdac.set_adc_refvoltage(3.3)

while True:
    print (adcdac.read_adc_voltage(1, 0))
    time.sleep(0.05)

编辑:这与使用 VBA 合并 CSV 文件不同。我正在从传感器写入到 ADC 到微控制器到 RAM 到 CSV。

【问题讨论】:

  • 这里的被打断到底是什么意思?在最终的 CSV 输出中,您希望每行有多少个值?
  • 我会按下一个按钮,代码会停止并且 csv 被保存。每行 1 个值。
  • 对于每行一个值,只需在每次循环中调用 write-a-row 函数,同时调用print

标签: python raspberry-pi3


【解决方案1】:

多种解决方案:

  • 将输出重定向到文件

    python yourscript.py > log.txt
    
  • 打印到文件

    with open('log.txt', 'a') as f:
        print (adcdac.read_adc_voltage(1, 0), file=f)
    
  • 使用日志记录:

    import logging
    logging.basicConfig(filename='log.txt',level=logging.INFO)
    while True:
        logging.info(adcdac.read_adc_voltage(1, 0))
        time.sleep(0.05)
    

【讨论】:

  • 这是否允许我在我的蜘蛛仍在抓取和输出时在 Windows 中查看 CSV?目前,如果我保持 CSV 文件打开,我会遇到 permission denied 错误
  • 你好@Anthony,这与python无关。您可能使用了 excel 将文件设置为只读一次。也许excel中有一个选项可以改变这种行为。如果没有,我建议您尝试使用其他软件来读取文件(例如 notepad++ 没有设置只读标志)
  • 天哪,我什至没有意识到csv 文件可以被其他程序读取!!谢谢
猜你喜欢
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
  • 2014-07-03
相关资源
最近更新 更多