如何使用子進程和ssh從大遠程文件讀取數據?使用python子進程和ssh讀取遠程文件?
回答
import subprocess
ssh = subprocess.Popen(['ssh', '[email protected]', 'cat', 'path/to/file'],
stdout=subprocess.PIPE)
for line in ssh.stdout:
line # do stuff
羅斯,我有完全相同的命令,你建議,但只讀第一行,不讀其他行。如何讓它讀取文件中的所有行? – user2921139
我應該說,通過使用上面的你,文件內容是逐字符讀取的。我怎樣才能完整地讀取整行? 「split('\ n')」似乎不起作用。 – user2921139
在'ssh.stdout'後面刪除'.readline()',你想循環輸出而不是第一行。 –
答案上面會工作,但你必須設置你的ssh登錄your boxes之間不使用密碼。還有其他一些使用Python在計算機之間傳輸文件的方法。一個簡單的方法,沒有身份驗證是設置一個Apache服務器,並使用http request。
使用iter
與readline
讀取每個全線:
for i in iter(f.stdout.readline,"")
對於性能的提高,這是非常重要的文件的時候就大了,有rsync的。有關詳細的改進更多信息,請參見下面的帖子,並從拉法答案: How does `scp` differ from `rsync`?
算法然後將下面使用rsync
import subprocess
subprocess.Popen(["rsync", host-ip+'/path/to/file'],stdout=subprocess.PIPE)
for line in ssh.stdout:
line # do stuff
這不起作用。 – Sarien
- 1. 使用ruby Net :: SSH通過sudo讀取遠程文件
- 2. spyder和遠程ssh python intepreter
- 3. 使用opencsv讀取遠程.csv文件
- 4. 使用Java讀取遠程文件
- 5. 遠程讀取TXT文件使用ActionScript
- 6. 遠程讀取文件
- 7. 遠程讀取Excel文件
- 8. 讀取遠程XML文件
- 9. 遠程讀取xml文件
- 10. 讀取和寫入遠程文件PHP
- 11. 使用子進程讀取和寫入進程
- 12. 使用ssh進行遠程dd備份
- 13. perl的SSH遠程服務器上讀取文件
- 14. 通過ssh讀取遠程屬性文件oozie
- 15. 用ssh殺死遠程進程
- 16. Python:使用子進程複製文件
- 17. 如何用GWT讀取遠程文件
- 18. 從python子進程中讀取fd#3
- 19. Python:讀取子進程的stdout而不打印到文件
- 20. RxPy讀取csv文件和進程行
- 21. 在java中使用ssh讀取遠程Ubuntu目錄?
- 22. 使用python從多個進程讀取相同的文件
- 23. Python程序:讀取文件
- 24. 使用子進程讀取輸入?
- 25. 使用Python遠程運行進程
- 26. 使用PHP和SSH遠程關機
- 27. 使用文件大小讀取遠程文件大小
- 28. ssh - 通過遠程SSH執行一個gtk python應用程序?
- 29. 使用Python中的子進程從進程中無緩衝地讀取
- 30. Python線程和子進程
你要運行用SSH遠程服務器上的程序,需要訪問文件?你想用SCP將文件複製到你的電腦嗎?你希望Python能夠直接讀取或寫入文件嗎?您需要提供更多關於您爲了回答這個問題而想要做什麼的細節。 – agf
在我的程序中,我想列出遠程服務器上特定目錄下的文件。用戶然後選擇對這些文件中的一個進行操作。這些文件相當大,所以我希望能夠逐行閱讀(以避免內存問題)。如果線路符合條件;對該行進行一些操作,直到達到文件結尾。 – sdfasdfasdf