私は克服する方法が分かりません。私は別のpythonスクリプトを実行するために、pythonでサブプロセスを作成しようとしています。それほど難しくない。問題は、pythonファイルにスーパーロングストリングが含まれていると、EOFエラーです。Pythonのsubprocess.callと複数行の文字列EOF
ここに、私のファイルの外観の例があります。
Subprocess.py:
### call longstr.py from the primary pyfile
subprocess.call(['python longstr.py'], shell = True)
Longstr.py
### called from subprocess.py
### the actual string is a lot longer; this is an example to illustrate how the string is formatted
lngstr = """here is a really long
string (which has many n3w line$ and "characters")
that are causing the python file to state the file is ending early
"""
print lngstr
回避策として、端末
SyntaxError: EOF while scanning triple-quoted string literal
でプリンターエラー、私はすべての改行を削除するだけでなく、してみましたそれがマルチラインであるかどうかを確認するためにすべてのスペース。それでも同じ結果が返ってきました。
私は、サブプロセスが実行されていて、シェルがファイルの内容で何かをしているときに、新しい行に達したときにシェル自体が不安定になり、それがプロセスを終了させるということです。ファイルではありません。
サブプロセスにこのようなファイルを実行させるための正しい回避策は何ですか?
ありがとうございました。
なぜ別のPythonスクリプトを別のプロセスで実行したいのですか? 'import'はもっと効率的になり、特にマルチプロセッシングを再実装しようとしているのでなければ、より制御しやすくなります。 – tripleee
ファイルが動的に作成されているため、メインファイルの先頭にインポートを追加することは、ファイルを '開く 'と'書き込み'するまで実行できません。それはちょうど私がする方法を知りたいと思う何かである。 – lindsay
無駄な 'shell = True'を取り除くことは、「不十分」な地球を粉砕することを少なくします。コマンドを文字列のリストに変換する必要があります。 'subprocess.call(['python'、 'longstr.py'])' – tripleee