サブプロセスと引用符に問題があります。pythonサブプロセス呼び出しbashスクリプト - 引用符も出力する必要があります
私のPythonスクリプトは、ユーザーの入力を受け取り、ちょっと回りますが、この方法で結果をbashスクリプトに送る必要があります。
myscript.sh 'var1 == a var2 == b; othervar == c' /path/to/other/files
ここで、私が悩んでいるのは、一重引用符です。 Pythonはそれらを取り除こうとします。
私はこれをテストに使用しました。
subprocess.Popen([myscript.sh 'var=11; ignore all' /path/to/files], shell=True, executable="/bin/bash")
2番目の一重引用符を指す無効な構文を返します。私はまた、角括弧なしで上記を試してきましたが、一重引用符を外側と二重引用符で囲んで使用しています。
その他のものです。
私が上記の 'var == a var == b; othervar == c 'はPythonスクリプト(文字列形式)から派生しています。このようなサブプロセスで呼び出す必要があります。
subprocess.Popen([myscript.sh myvariables /path/to/files], shell=True, executable="/bin/bash")
最初の例のように、myvariablesの値を一重引用符で囲むだけでよいのです。
私が正しい方法をどこから外しているかについての指針はありますか?
ありがとうございます。リストだ
私は今日このエラーがあると思います。人々はこれが遠隔的に有効な構文だと思うのですか?リスト項目はコンマ、ピリオドで区切られています。空の 'foo'は文字列' 'foo ''とは何の関係もありません。 (また、あなたが引用している例を罰金することはできませんでした。行番号を与えてもらえますか?) – delnan