raspberry pi で環境センサーを使っています。enviro+というセンサーを利用して以下のプログラムを実行します。その際、24時間のデータを収集したいと思っております。すべてのデータを自動でファイルに出力させることができればと願っています。ターミナル上では10分ほどしか記録が残らないため、ターミナルからコピーすることができません。
実行結果のファイルへの記録の方法を教えていただけますでしょうか。どうぞ宜しくお願い致します。
python3
1#!/usr/bin/env python3 2 3import time 4from bme280 import BME280 5 6try: 7 from smbus2 import SMBus 8except ImportError: 9 from smbus import SMBus 10 11import logging 12 13logging.basicConfig( 14 format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', 15 level=logging.INFO, 16 datefmt='%Y-%m-%d %H:%M:%S') 17 18logging.info("""weather.py - Print readings from the BME280 weather sensor. 19 20Press Ctrl+C to exit! 21 22""") 23 24bus = SMBus(1) 25bme280 = BME280(i2c_dev=bus) 26 27while True: 28 temperature = bme280.get_temperature() 29 pressure = bme280.get_pressure() 30 humidity = bme280.get_humidity() 31 logging.info("""Temperature: {:05.2f} *C 32Pressure: {:05.2f} hPa 33Relative humidity: {:05.2f} % 34""".format(temperature, pressure, humidity)) 35 time.sleep(1)
このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
ありがとうございます。プログラムを修正いたしました。
pythonのコードの一番最初の行のすぐ上に
```python
だけの行を追加してください
また、pythonのコードの一番最後の行のすぐ下に
```
だけの行を追加してください
修正をいたしました。
これでよろしいでしょうか。
まだダメです
たぶん現状は
```python3
コード
```
となってると思うのですが、上記「コード」を削除して、その代わりにPythonのコードを全部そこに入れるのです
ありがとうございます。
修正をいたしました。
これでいかがでしょうか。
大丈夫です
このプログラムの結果をファイルに保存してくことはできますでしょうか。
また、google spreadsheetに送付することもできればと願っております。
ご教授いただけますでしょうか。
> データを10分ごとに追記させていく
とは、質問のコードの最後の
> time.sleep(1)
の数値を増やす、ということですか?
このプログラムを実施すると、結果がターミナルに表示されます。しかし、10分間のみが表示され、それ以前は消えてしまうため、計測したすべての結果をコピーすることができません。
計測した結果をすべてファイルに保存できればと願っています。
10分ごとではなくても、保存する方法があればと思っております。
https://docs.python.org/ja/3/howto/logging.html#logging-to-a-file
の「ファイルへの logging」に書かれてるように、
logging.basicConfig(…
に「filename='example.log'」みたいなのを追加したらいいのでは?
ありがとうございます。
参考にさせていただきます。
ご助言ありがとうございます。
logging.basicConfig(filename='example.log', encoding='utf-8', level=logging.DEBUG)
上記のコードを追加することでファイルを作成し、保存することができました。しかし、このコードを追加した場合、ターミナルでの表示がされないようになっていまいました。解決策はあるでしょうか。
質問には
> すべてのデータを自動でファイルに出力させることができればと願っています。
としか書いてませんよね
必須な条件があるなら、後出ししないで書いてください
申し訳ございません。
それまでターミナルで表示されていたため、その点について記載できておりませんでした。
https://docs.python.org/ja/3/howto/logging-cookbook.html#logging-to-multiple-destinations
の「複数の出力先にログを出力する」を見てください

回答3件
あなたの回答
tips
プレビュー



