コードは、私はしかし、それは最後の数行が欠けている、このプログラムは、全体の「TEXT.TXT」ファイルを印刷するために期待されるサブプロセスを作成する方法.Popenはstdout全体を取得しますか?
import subprocess as sp
a = sp.Popen(['bash', '-c', 'ssh [REDACTED] cat text.txt'],
stdout=sp.PIPE, stderr=sp.PIPE)
print(a.communicate()[0])
(プロンプトのpython 2.7に)以下です。
ファイルtext.txtはリモートサーバーにありますが、私はその要点を想定しています。ファイルを取得して、ローカルでsubprocess.Popenを実行すると、期待通りに機能します。
どうして私はそれを修正できますか?
ノート:データサイズが非常に大きい場合、私はdocumentation for communicate
によるcheck_output
ローカルでsshコマンドを実行すると、フルファイルを取得するのですか、それとも最後の数行が欠落していますか? – amiller27
私は完全なファイルを取得します。リモートサーバーは面白い何かをしていて、何とかstdoutを通してすべてを送信していないかもしれませんか? –
実行するとどうなりますか? 'print(repr(subprocess.check_output(shlex.split( 'ssh" cat text.txt "')))'? –
jfs