Python3にて、日付・時間と、センサーから取得した数値をCSVファイルに書き込もうとするとエラーが出てしまいます。
Python2では、そのまま問題無く動作します。
どのように変更すれば良いのでしょうか。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "temp-csv-cron.py", line 59, in <module> readData() File "temp-csv-cron.py", line 52, in readData writer.writerow([record_time,temp,internal]) TypeError: 'str' does not support the buffer interface
該当のソースコード
Python3
1# -*- coding: utf-8 -*- 2import os 3import datetime 4import csv 5import time, signal, sys 6import Adafruit_GPIO.SPI as SPI 7import Adafruit_MAX31855.MAX31855 as MAX31855 8 9DATA_DIR ='/home/pi/' 10 11# Raspberry Pi software SPI configuration. 12CLK = 25 13CS = 24 14DO = 18 15sensor = MAX31855.MAX31855(CLK, CS, DO) 16 17# Raspberry Pi hardware SPI configuration. 18SPI_PORT = 0 19SPI_DEVICE = 0 20sensor = MAX31855.MAX31855(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE)) 21 22 23def readData(): 24 #get record_time and date 25 record_datetime = datetime.datetime.now() 26 record_file_name = record_datetime.strftime('%Y%m%d')+'_temp.csv' 27 record_time = record_datetime.strftime('%Y/%m/%d %H:%M') 28 print(record_time) 29 30 #reda temp 31 temp = sensor.readTempC() 32 internal = sensor.readInternalC() 33 34 #Nan processing 35 if temp == temp: 36 temp = temp 37 else: 38 temp =0 39 if internal == internal: 40 internal = internal 41 else: 42 internal =0 43 44 #record data 45 file = os.path.isfile(DATA_DIR+record_file_name) 46 if file == False: 47 writer = csv.writer(open(DATA_DIR+record_file_name,'ab')) 48 writer.writerow(['Time','External','Internal']) 49 writer.writerow([record_time,temp,internal]) 50 else: 51 writer = csv.writer(open(DATA_DIR+record_file_name,'ab')) 52 writer.writerow([record_time,temp,internal]) 53 print(("Temp : " + "%2.2f" % temp + "℃")) 54 print(("Internal : " + "%2.2f" % internal + "℃")) 55 56if __name__ == '__main__': 57 try: 58 readData() 59 except KeyboardInterrupt: 60 61 pass 62 63
試したこと
Python3での文字列とバイト型の関係でのエラーらしいとはわかるのですがどうにも対処法がわかりません。
補足情報(FW/ツールのバージョンなど)
Raspberry pi
Python 2.7.9
Python 3.4.2
色々やってはみたもののどうも上手く対処できません、お手数をお掛けしますがご教授をお願いできないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/18 07:12