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だと違うかもしれません。