參考my question at SuperUser,我面臨着一個令人費解的情況下使用du -sh /media/ExternalHd/myfolder/*
作品從終端預期,但在Python腳本中使用p=subprocess.Popen(['du', '-sh', '/media/ExternalHd/myfolder/*'], stdout=subprocess.PIPE)
顯示error du: cannot access /media/ExternalHd/myfolder/*: No such file or directory
du -sh在終端和python腳本中的行爲?
0
A
回答
2
終端擴展*爲您服務。 告訴子做:
p=subprocess.Popen('du -sh /tmp/*', shell=True)
或者你可以使用glob模塊來擴展*自己, 如果你需要更多的控制
0
你應該參數shell=True
添加到您的subprocess.Popen FUNC 。所以,你可以調用外殼和使用環境變量,文件等水珠
p = subprocess.Popen(['du', '-sh', '/media/ExternalHd/myfolder/*'], stdout=subprocess.PIPE, shell=True)
然而,你應該避免使用shell=True
因爲安全隱患的,看到警告的python subprocess module docs。對於這樣的小腳本,也許它不會產生問題,但要記住;)
有關更多詳細信息,請參見this answer另一個計算器溢出問題。
相關問題
- 1. Python無法執行終端腳本,使用sh或bash
- 2. 在Python腳本中運行終端
- 3. 在終端中運行python腳本
- 4. 在Mac終端上運行Python腳本
- 5. Python腳本在終端執行命令
- 6. 如何在bash腳本中使用du -sh
- 7. 從Unix的終端執行python腳本
- 8. 在終端中運行更多sh
- 9. Linux Ubuntu:腳本在終端中工作,但不是.sh
- 10. 在新終端中啓動Python腳本
- 11. Schematron sh腳本不行爲
- 12. 從Ubuntu終端運行Python腳本NameError
- 13. 在終端執行腳本文件和通過終端
- 14. Python腳本在IDLE中運行,但不在終端中
- 15. 當我在MacOS終端中寫入./test1.sh時,哪個進程在終端執行腳本
- 16. 從.sh腳本中打開新終端之後,.sh腳本中的源文件不起作用
- 17. Python中的腳本和交互式終端客戶端
- 18. 爲什麼我的.sh文件沒有在終端中運行?
- 19. Cron執行一個執行python腳本的sh腳本
- 20. 從Python的Python終端運行Python腳本
- 21. 用Python腳本在Ubuntu終端中顯示UTF8腳本
- 22. Python腳本沒有運行「.sh」文件
- 23. Crontab和sh腳本
- 24. 「SH -x」 等效Perl和Python腳本
- 25. Bash別名du-sh +排序
- 26. 「du -sh」權限被拒絕
- 27. sh腳本相當於python腳本
- 28. Python腳本在終端中運行,但不像Apache
- 29. 在終端全屏幕中執行Python腳本
- 30. 在終端中運行Python腳本時沒有找到命令
謝謝你解決了我的問題:) – Stacked