2017-12-16 18 views
-1

まず、Pythonプログラミングでは初心者だと言わざるを得ない。私はセンサーをRPi 3 UARTポートに接続している。私は、このセンサーのインターネットワーキングプログラムで見つけました。ちょっとした変更を加えて、私は測定の結果をファイルに書きます。コードは以下の通りです:結果Pythonスクリプトの出力形式を変更する

import serial 
import time 
import sys 
import json 
import datetime 
import binascii 

class pmsA003(): 
     def __init__(self, dev): 
      self.serial = serial.Serial(dev, baudrate=9600, 
timeout=3) 
     def __exit__(self, exc_type, exc_value, traceback): 
      self.serial.close() 

    def setIdel(self): 
      idelcmd = b'\x42\x4d\xe4\x00\x00\x01\x73' 
      ary = bytearray(idelcmd) 
      self.serial.write(ary) 

    def setNormal(self): 
     normalcmd = b'\x42\x4d\xe4\x00\x01\x01\x74' 
     ary = bytearray(normalcmd) 
     self.serial.write(ary) 

    def vertify_data(self): 
     if not self.data: 
      return False 
     return True 


    def read_data(self): 
     while True: 
      b = self.serial.read(1) 
      if b == b'\x42': 
       data = self.serial.read(31) 
       if data[0] == b'\x4d': 
        self.data = bytearray(b'\x42' + data) 
        if self.vertify_data(): 
         return self._PMdata() 

    def _PMdata(self): 
     d = {} 
     d['apm10'] = self.data[4] * 256 + self.data[5] 
     d['apm25'] = self.data[6] * 256 + self.data[7] 
     d['apm100'] = self.data[8] * 256 + self.data[9] 
     return d 

if __name__ == '__main__': 
     con = pmsA003('/dev/ttyAMA0') 
     d = con.read_data() 
     print(d) 
     with open('/home/pi/ramdisk/PMA003', 'a') as f: 
       f.write("%s" % (d)) 

、私はこのようなコンソールとファイルの文字列になった:

{'apm10': 150, 'apm100': 244, 'apm25': 228} 

しかし、私の目標は、形式のファイルのようにCSVを持つことです。

,value_of_apm10, value_of_apm25, value_of_apm100 

上記のコードを誰かに教えてもらえますか?

+1

を行う必要があります正確に何の例がありますか? –

答えて

0

Python CSVライブラリをインポートしてからcsv.DictWriterオブジェクトを作成する必要があります。 (これを行う方法はPythonのドキュメントを参照してください - それはかなり簡単です)。

DictWriterを作成するときは、必要な列見出しのリストを入力します。次に、CSVファイルに書きたいレコードごとに、列ヘッダーに対応するキーで辞書を作成し、DictWriterのwriterow()メソッドを呼び出します。

あなたがあなたの希望の形式にそれを得るために、これまで試みている何here.

関連する問題