在python中,如何判斷某個system()調用是否成功?在我正在編寫的程序中,我需要知道一個java程序是否使用javac正確編譯,這是使用system()(在python程序中)調用的。所以我需要知道javac是否拋出任何異常,如果java程序有任何語法問題,那麼在java程序編譯時就會出現任何問題。本質上,程序要求用戶輸入dir,然後詢問java程序名稱,然後詢問是否接受任何參數,然後用system('javac'+ str(javaFile)+'.java')編譯它。如何知道如果javac在python中乾淨地使用system()編譯
3
A
回答
4
您需要使用subprocess模塊,os.system
已被棄用。
0
的退出碼錶示成功終止,非零退出碼錶示發生錯誤。
有許多方便的功能,讓我們的subprocess.call
>>> subprocess.call(['ls', '-a'])
0
成功的例子,如ls
用正確的參數調用。
現在讓我們嘗試:
>>> subprocess.call(['ls', '-T']) # option -T requires an argument
2
無效的參數和返回2
。如果javac
編譯成功,則應返回0
。否則,會引發錯誤。這取決於調用subprocess
模塊的哪個功能。
0
在Unix上,os.system返回啓動進程的退出狀態。它在Windows上的工作方式不同。
os.system旨在被替換爲Python 2.4中的模塊子進程。
http://docs.python.org/library/subprocess.html#module-subprocess
相關問題
- 1. 如何使用javac編譯Netbeans項目
- 2. 如何在ASP.NET.NET MVC中乾淨地重用編輯/新視圖
- 3. Makefile不重新編譯,如果不乾淨
- 4. 如何在Python中乾淨地修改參數的功能?
- 5. 我如何知道我在編譯mac?
- 6. 如何幹淨地遍歷兩個文件並行在Python
- 7. 如何幹淨地結束CDI @ConversationScoped
- 8. 如何幹淨地卸載ansible
- 9. 如何從node.js乾淨地關閉mongodb?
- 10. 如何將編譯結果(使用javac)存儲到文本文件中?
- 11. 如何知道在Qt .pro文件中,如果visual studio是編譯器?
- 12. 內核Makefile如何神奇地知道要編譯什麼?
- 13. 如何幹淨地編寫抽象與RESTful資源交互?
- 14. 如何使用Ansible乾淨地管理printers.conf?
- 15. 如何使用AJAX請求乾淨地獲取文本文件
- 16. Python - 乾淨地傳遞參數
- 17. 編譯器如何知道要使用哪個catch塊?
- 18. 如何使用.htaccess編寫更乾淨的網址
- 19. 如果我在編譯時不知道類,我該如何獲得Enum的值?
- 20. 如何讓用NetBeans編寫的java程序用javac編譯?
- 21. 不知道如果javac不工作,或者我只是愚蠢
- 22. 如何後處理使用Ant javac任務編譯的文件?
- 23. 如何在Perl中乾淨地提取MySQL枚舉值?
- 24. 如何在Spring Rabbit中乾淨地關閉RabbitTemplate?
- 25. 如何讀取乾淨
- 26. 無法知道如何編譯在多個文件中
- 27. 如何在Android中編寫乾淨的代碼?
- 28. 如何在IIS7中使用Microsoft.Web.Administration命名空間乾淨地處理Handler映射?
- 29. javac編譯錯誤
- 30. Javac編譯參數
這是一個驚人的天真的方法。使用'subprocess',因爲它會給你任何輸出和退出代碼,也不會在例如如果使用了適當的空格(即用'['javac','--some-opt',javafile +'。java']'作爲命令'), – delnan 2011-04-02 18:07:46