《Python核心編程》第二版第437頁第十四章練習 續一 -Python核心編程答案-自己做的-

來源:互聯網
上載者:User

這是自己做的練習,可能有錯誤,歡迎討論和各種最佳化重構方案。
根據反饋,或者code review,對本篇文章答案或者相關內容的更新補充,一般會被添加在本篇部落格的評論中。
將盡量保證每題的答案代碼是完整的,不僅僅是函數,類或者只是個大概,力求開啟Python 2.7的IDLE,將代碼完整拷貝進去,就能調試運行。
歡迎訪問Balian在部落格園的家。 http://www.cnblogs.com/balian

14-5.
commands.getoutput()。用commands.getoutput()解決前面的問題。
【答案】
commands.getoutput()在unix平台才能運行。參考http://bugs.python.org/issue15073
曾經嘗試在linux的Python 2.5中運行該模組,同樣發現文法問題。因為
Deprecated since version 2.6: The commands module has been removed in Python 3. Use the subprocess module instead.

14-6.
popen()家族。選擇熟悉的系統命令,該命令從標準輸入獲得文本,操作或輸出資料。(a)使用os.popen()與程式進行通訊。輸出到哪兒呢?(b)使用popen2.popen2()代替。
【答案】
(a)代碼如下:

>>> import os>>> command = input('Please input a DOS command: ... ')Please input a DOS command: ... 'dir'>>> k = os.popen(command)>>> k<open file 'dir', mode 'r' at 0x0000000002111420>>>> print k.read()  #該語句可以讀出dir的實際輸出

(b)代碼如下:

>>> command = 'dir'>>> import popen2>>> pipe_in, pipe_out = popen2.popen2(command)>>> pipe_in.readlines()#這裡會輸出命令dir的結果。>>> pipe_in.close()

【參考】
http://www.360doc.com/content/12/0131/16/2660674_183157204.shtml

http://linhs.blog.51cto.com/370259/126831


14-7.

subprocess模組。把先前問題的解決方案移植到subprocess模組。

【答案】

>>> import subprocess>>> k = subprocess.call('dir', shell = True)#這裡會輸出命令dir的結果。>>> k0   #這表示命令正確執行了

 

14-8.
exit函數。設計一個在程式退出時的函數。安裝到sys.exitfunc(),運行程式,示範你的exit函數確實被調用了。

【注】

這裡附一個英文版書中的原題。

【答案】

代碼如下:

import sysdef my_exit():    print 'World'    sys.exitfunc = my_exitprint 'Hello'sys.exit(1)print 'there'

【參考】
http://effbot.org/librarybook/sys-exitfunc-example-1.py

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.