2016-07-21 6 views
0

私はdjangoサーバを持っています。私はscpでいくつかのデータをアップロードしなければなりません。 Iこのビューを持っている:ページが実行されているコンソールウィンドウでpythonからscpの出力をキャプチャ

pathFile = '/home/user1/foo.json' 
user = 'user1scp' 
server = 'someserver.com' 
pathServer = '/var/www/foo.json' 

os.system("scp %s %[email protected]%s:%s" % (pathFile, user, server, pathServer)) 

(つまり私は「のrunserver」コマンドと呼ばれている)私は、この出力が示されている:

[21/Jul/2016 18:55:12] "GET /someurl/upload HTTP/1.1" 301 0 
foo.json           100% 609  0.6KB/s 00:00 

私ができるようにしたいですその出力を操作するため、アップロードする複数のファイルがすべてアップロードされているか、アップロードされていないファイルがあるかをユーザーに通知できます。

私はこの回答で解決策を試しましたが、How to capture stdout output from a Python function call?が動作しませんでした。私はPopenとサブプロセスを試したが、結果もなかった。多分私は何か間違っているのですか?

答えて

1

これはあなたの質問に直接答えるものではありませんが、あなたが持っていても出力を解析するのが難しいので、私はPythonでraw scpコマンドを実行しません。これを処理するには、fabricのようなツールを使用することを検討する必要があります。あなたは入力/出力を完全に制御できます。 scpと同じ操作はputです。たとえば、SO answerを確認できます。

ほとんどすべてのコマンドライン操作はfabricを使用して行うことができますが、あなたはそれを学んだことを後悔しません。

関連する問題