前提
python初心者です。
pythonでコマンドラインツールのexiftoolを使いたいのですが、うまくいきません。
フォルダにはJPG画像と、EXIFが入ったJSONファイルのセットが複数入っています。
A.jpg
A.json
B.jpg
B.json
みたいな感じです。
実現したいこと
JSONファイルに入っているEXIF情報ををJPGに付与したい。
発生している問題・エラーメッセージ
File '[]' does not exist for -tagsFromFile option
となってしまいます。
ターミナルで
exiftool -TagsFromFile A.json A.jpg
を打ち込んだときはできるのですが。
該当のソースコード
python
1import subprocess 2import glob 3 4img = glob.glob('*.jpg') 5json = glob.glob('.*.json') 6 7cmd = 'exiftool -TagsFromFile {0} {1}'.format(json, img) 8 9subprocess.run(cmd,shell = True) 10
最終的にはforループをつけた下の方を使う予定です↓
python
1import subprocess 2import glob 3 4img = glob.glob('*.jpg') 5json = glob.glob('.*.json') 6 7cmd = 'exiftool -TagsFromFile {0} {1}'.format(json, img) 8 9for i, j in zip(img, json): 10 subprocess.run(cmd,shell = True)
こっちの時はエラーメッセージは出ずに、EXIFも付与されていない結果になります。
よろしくお願いします。
補足情報
exiftoolの構文は
exiftool -TagsFromFile "コピー元ファイル" "コピー先ファイル"
です。
ターミナルで直接打ち込んだ時は出来ました。
subprocessで簡単なコマンド(ls)を試した時は出来たので、ディレクトリが違うとかではない気がします。
さんこうにしたサイト
exiftoolの使い方
https://note.com/minimalist_meme/n/nf364c3d093c3#2qKLU