前提・実現したいこと
Python3.6.5からシェルを実行したいのですが、シェル内にファイル書き出し処理があるためか正常に動作しません。
シェル側はcsvファイルの文字列を置換し、別ファイルに出力する処理です。
##出力結果
file.csvが0byte
該当のソースコード
python側該当箇所
xxx.py
1subprocess.run(["/batch/output.sh", "xxx.csv"])
シェル側問題箇所
output.sh
1sed -e "s/\r//" /tmp/xxx.csv > /export/file.csv
補足情報
Django2を使ったwebアプリ上で動作します。
/batch/output.shをコマンド実行すると正常に動作します。
追記
シェルの手動実行・・・ok
test.py の実行・・・ok
test.py
1#!/usr/bin/env python 2import subprocess 3res = subprocess.run(["xxx.sh", "test.csv"], stdout=subprocess.PIPE) 4print(res)
Webアプリ(Django)からの実行・・・NG
権限、PATH、Django仕様あたりを調べてみます。
回答2件
あなたの回答
tips
プレビュー