2019/08/26
タイトルの通りです。
初の投稿が個人的技術メモになってしまうとは。
今現場に出てPythonで便利ツールを作る作業に勤しんでいるのですが、とある問題に出くわしました。
問題点:
Python上からsubprocessを呼び出しTreasureData用のSQLを実行させようとした際に、ローカルのファイルを指定できない
import subprocess
cp = subprocess.run("td query -w -r -d {データベース} -q C://Users//{ユーザー名}//hoge//hoge.sql,shell=True<br>
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
まじかよ。
解決策:
windowsのバッチファイルを動的になり生成し、そのバッチ内で上記コマンドを実行させるほかない。
つまり、
td query -w -r -d {データベース} -q C://Users//{ユーザー名}//hoge//hoge.sql
とかにして、
import subprocess
cp = subprocess.run(exec.bat,shell=True)
としなければならないようだ。
Macならsu-とかで実行できるんだろうに!!
他に対策あれば教えてください!