情況:我目前使用paramiko做一些奇怪的sftp的東西,並經常發現自己編譯遠程文件的路徑名稱。我認爲可能有更聰明的做法。 問題: 有沒有辦法在Python中使用os.path操作的操作系統,而不是你當前的操作系統? 我想ultimatly可以去remotehost.os.path「一些操作」有沒有辦法在python中使用os.path操作的操作系統不是你當前?
3
A
回答
6
截至the docs頂部的大注云:
由於不同的操作系統有不同的路徑名稱約定,標準庫中有這個模塊的幾個版本。 os.path模塊始終是適合Python運行的操作系統的路徑模塊,因此可用於本地路徑。但是,如果要操縱始終採用不同格式之一的路徑,還可以導入和使用各個模塊。他們都有着相同的接口:
- posixpath爲UNIX風格的路徑
- ntpath爲Windows路徑
- macpath適用於舊的MacOS的路徑
- os2emxpath用於OS/2 EMX路徑
顯然,像ntpath.lexists
這樣的東西不會在POSIX系統上工作,但是像join
,basename
等會。
如果您不知道遠程服務器需要什麼格式,並且沒有任何方法可以解決,posixpath
通常是安全的。 sftp
和Paramiko的類似功能將始終處理POSIX路徑;如果你使用的是ssh
shell,cmd.exe
和你想運行的許多命令行工具(包括Python腳本)將能夠在Windows上處理它們,OS/2也是如此,當然舊式Mac甚至沒有一個外殼,你可以ssh
到。
0
我建議你看看fabric
。
- 它利用
paramiko
作爲底層的東西(transport/ssh/sftp)。 - 這是一個非常好的選擇運行
Task
,或自動化。 - 他們正在研究remote execution hooks (open issue)。
execnet
,pushy
,pyro
...和其他並行處理庫。
引擎蓋下,fabric
posixpath.join()
使用,因爲Windows does support /
as a directory separator。他們遇到了同樣的問題,並更改了from os.path.join
to posixpath.join()
in this commit。
特點fabric
:
- file and directory management
- project tools(rsync的/整個目錄上傳)
- tasks !(普通真棒)
相關問題
- 1. 有沒有辦法讓本機操作系統應用程序
- 2. Vimscript中是否有命令獲取當前操作系統?
- 3. 是否有API知道當前的iOS/Mac是64位操作系統還是32位操作系統?
- 4. 有沒有辦法在java中獲得遠程主機的操作系統
- 5. 在沒有操作系統的嵌入式系統中的malloc
- 6. 有沒有辦法強制HTML在操作系統中打開mp3?
- 7. 有沒有辦法在JavaScript中區分Android Arm和Android x86操作系統?
- 8. 的Python 3.6.0:「操作系統」模塊沒有「sched_getaffinity」的方法
- 9. 有沒有辦法打印SEL操作?
- 10. 有沒有辦法檢查Windows操作系統緩存中的內容?
- 11. 有沒有辦法在調用之前檢查操作是否有效?
- 12. 有沒有辦法用Python來操作圖標文件?
- 13. 如何在'make'中檢查當前的操作系統是?
- 14. 如何操作系統...運行...沒有一個操作系統運行?
- 15. C++/clrIntelliSense:沒有操作符「+」匹配這些操作數。系統:雙^ +系統:雙^
- 16. 有沒有辦法配置操作系統位於SSD上的Azure虛擬機?
- 17. 有沒有辦法查看操縱HTML節點的操作?
- 18. 是否有宏檢測操作系統...?
- 19. Android是否有「主機」操作系統?
- 20. 在Windows操作系統中的pathos軟件包操作系統
- 21. Python CPU和操作系統
- 22. Python操作系統命令
- 23. Python操作系統模塊
- 24. 是否有可能使用java製作操作系統?
- 25. 通緝:所有在Raspberry Pi上運行的操作系統操作系統?
- 26. 移動操作系統與桌面操作系統有什麼不同
- 27. libumem是否僅在Solaris操作系統或其他操作系統中可用?
- 28. 操作系統中
- 29. 沒有在Ubuntu操作系統中找到Gulp-plumber,但在雙啓動的Windows操作系統中找到
- 30. 有沒有辦法使Java應用程序根據使用的操作系統運行某些方法?
你看了我的回答的最後一段?它已經說過「'posixpath'通常是一個安全的賭注」,並繼續解釋原因。 – abarnert
你可以編輯我的答案來添加它們,或評論我的答案;將所有信息放在一個地方比讓其他答案參考的答案更好。 (如果有人剛剛閱讀我的答案,但沒有閱讀你的答案,他們將看不到你的鏈接。) – abarnert
這就好比我的觀點:如果60%的文本與另一個不同回答,如果您將60%編輯到我的答案中或將其添加爲評論,我的答案將是關於'paramiko' /只是簡單路徑的更好答案。 – abarnert