質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

ラズベリーパイにて、systemdで自動起動した場合に、ファイルメイクした.txtファイルが表示されない(ただし存在はしている)

shinchoroX
shinchoroX

総合スコア9

systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

464閲覧

投稿2020/12/03 01:04

編集2020/12/03 01:40

前提

ラズベリーパイ4にて、Pytohn3にでプログラムを作成しています。
一日に一回、本日の日付のテキストファイルを作成し、メールで送信します。
(朝にテキストファイル作成し、夜にメール送信)

手動(Thonnyからの実行ボタン、ターミナルからのコマンドでの実行)で作成後、動作を確認しています。
その後、systemd利用して、電源ON後に自動でプログラムが走るようになっています。

動作は全てOKなのですが、以下の問題点があります。

発生している問題

「自動起動時にGUI環境下で、フォルダを見た時に作成したテキストファイルが表示されない」
という現象が発生しています。(ターミナルでlsを打っても表示されません)

しかし、「ファイルは表示されないが、メールに添付して送信は出来ている」状態です。
上記の「手動」で実行するとキチンとテキストファイルが作成されます。
自動起動の場合のみ、ファイルが表示されません。

メール送信やファイル作成の時間設定を変更し、
1.ラズパイ起動->1分後にプログラム自動起動
2.この時にイニシャル処理で作成されているはずのテキストファイルが無い
2.5分後にメール送信完了(ファイルが無いとエラーで止まるはず+実際にメール受信している)
となっているので、動作は問題ありません。

が、ラズパイ上でファイルの内容が確認できないので不便です。

該当のソースコード

以下をモジュール化してメイン関数内にて使用しています。

以下の2パターンでテキストファイルを作成しています。
1.プログラム実行時のイニシャル設定時
2.一日に一回の指定時間時に
両方のパターンで問題が発生しています。

Pyton3

# coding: UTF-8 ''' ファイル書き出し用のモジュール タイムスタンプ名のファイルを書き出す 流れは 1.ファイル作成(適当な名称) 2.osモジュールの機能でリネーム ''' import time import datetime import os ''' 関数定義 ''' ''' ######################### 関数名:fmake_txtemp 引数 :作成したいファイルのパス 戻り値:なし 機能 :空のtxtファイルを作成 ######################### ''' def fmake_txtemp(path): with open(path,mode='w') as f: f.write('') ''' ######################### 関数名:fmake_TimeStmp 引数 :変更したいファイルパス 戻り値:なし 機能 :今日の日付が名称のtxtファイルを作成     リネーム機能を使っているので、先にファイルを作成しておく必要がある     形式はyyyymmdd.txt ######################### ''' def fmake_TimeStmp(path): now = datetime.datetime.now() new = '{0:%Y%m%d}.txt'.format(now) os.rename(path,new)

メインプログラム内で

#初期設定等 """ データ書き出し用ファイルの作成 """ Filepath = './init.txt' FW.fmake_txtemp(Filepath) FW.fmake_TimeStmp(Filepath) #メインループで while (True): # 00:01 FW.fmake_txtemp(Filepath) FW.fmake_TimeStmp(Filepath) # 23:59 メール送信

試したこと

ファイル作成時間、メール送信時間を調整し、上述の通り
「ファイルは表示されないが、メールに添付して送信は出来ている」
ことを確認しています。

*** ls -a の結果

pi@raspberrypi:/Leasemat $ ls -a
. File_w_time.pyc SendMailATT.pyc save_ONpic
.. JudgeTime.py pycache send_email.py
CC.py JudgeTime.pyc modules send_email.pyc
Camera_Count.py MotionSensor.py rec_movie.py
Camera_Count.pyc MotionSensor.pyc rec_movie.pyc
File_w_time.py SendMailATT.py save_CNTpic
pi@raspberrypi:
/Leasemat $

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

coco_bauer

2020/12/03 01:31

コンソールでinit.txtを生成したディレクトリに移ってから、"ls -a"コマンドを実行した結果を質問に追加してもらえませんか。 そこに、init.txtからリネームされた.txtファイルが含まれているのではないかと思うのですが。
shinchoroX

2020/12/03 01:42

アドバイスありがとうございます。 追記しました。 日付のファイルは無いようです。
shinchoroX

2020/12/03 02:20

OS自体が少し古いバージョンなので2019年のラズビリアンOS 現在は、ラズベリーパイOSとして新しくなったようですので、一度OSを入れ替えて試します。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。