Webエンジニアのメモ帳

技術的な話を中心に書いています。

【Python】cronからスクリプトを動す際の注意点

PythonスクリプトLinuxのcronから動かした際にエラーが発生したので、原因と解決方法を書いておきます。

ファイルは絶対パスを指定する

ファイルを扱う場合、ファイル名が絶対パスで書かれていないと実行されません。

(cronから実行しない場合は相対パスでOKです。)

相対パスを指定すると、No such file or directoryといった旨のエラーが出ます。

ファイルは文字コードを指定して開く

ファイルを扱う場合、文字コードを指定しないと以下のようなエラーになります。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)

以下のように文字コードを指定してファイルを開くことで解決できました。

file = open("ファイル名", "r", encoding = "utf-8")

なお繰り返しになりますが、ファイル名は絶対パスで指定してください。

補足 cronのエラーを確認する方法

エラーメッセージは/var/spool/mail/rootに出力されています。

※ なお私はCentOSを使っていますが、別のOSだと違うかもしれません。