《Python核心程式設計》第14章 習題

2021-07-29 22:25:43 字數 2559 閱讀 4542

14-3.執行環境。建立執行其他python

指令碼的指令碼。

filename = r'd:\test.py'

execfile(filename)

14-4. os.system()。呼叫os.system()執行程式。附加題:將你的解決方案移植到subprocess.call()。

import os

from subprocess import call

os.system('notepad')

call('notepad')

14-5. commands.getoutput()。用commands.getoutput()解決前面的問題。

from commands import getoutput  

output = getoutput('ls')

print output

14-6.popen()家族。選擇熟悉的系統命令,該命令從標準輸入獲得文字,操作或輸出資料。使用os.popen()與程式進行通訊。

import os

dirout = os.popen('dir')

sortin,sortout = os.popen2('sort')

filenames = dirout.read()

print filenames

sortin.write(filenames)

dirout.close()

sortin.close()

print sortout.read()

sortout.close()

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

from subprocess import popen,pipe

import os

dirout = popen('dir',stdout=pipe,shell=true).stdout

p = popen('sort',stdin=pipe,stdout=pipe,shell=true)

filenames = dirout.read()

print filenames

dirout.close()

p.stdin.write(filenames)

p.stdin.close()

print p.stdout.read()

p.stdout.close()

14-8.exit函式。設計乙個在程式退出時的函式,安裝到sys.exitfunc(),執行程式,演示你的exit函式確實被呼叫了。

import sys  

def my_exit_func():

print 'show message'

sys.exitfunc = my_exit_func

def usage():

print 'at least 2 args required'

print 'usage: test.py arg1 arg2'

sys.exit(1)

argc = len(sys.argv)

if argc < 3:

usage()

print 'number of args entered:', argc

print 'args were:', sys.argv

14-9.shells.建立shell

(作業系統

介面)程式。給出接受作業系統命令的命令列介面(任意平台)。

import os

while 1:

cmd = raw_input('#: ')

if cmd == 'exit':

break

else:

output = os.popen(cmd).readlines()

for out in output:

print out,

14-11.生成和執行python**。用funcattrs.py指令碼(例14.2)加入測試**到已有程式的函式中。建立乙個測試框架,每次遇到你特殊的函式屬性,它都會執行你的測試**

x = -1

def foo(x):

if x > 0:

return true

else:

return false

foo.tester = '''

if foo(x):

print 'passed'

else:

print 'failed'

'''if hasattr(foo,'tester'):

print 'function "foo(x)" has a tester ... executing'

exec foo.tester

else:

print 'function "foo(x)" has no tester ... skipping'

程式設計珠璣第14章

這裡把所有關於堆的操作寫出來。當做標程吧。include include define ms 1025 typedef struct heap heap heap h static void shift heap h,int i else break a i t static void increa...

第14章 網路程式設計

14.1 幾個網路模組 服務端 import socket s socket.socket host socket.gethostname port 8090 s.bind host,port s.listen 5 while true c,addr s.accept print got conne...

《Python核心程式設計》第10章 習題

10 6.改進的 open 為內建的 open 函式建立乙個封裝.使得成功開啟檔案後,返回檔案控制代碼 若開啟失敗則返回給呼叫者 none 而不是生成乙個異常.這樣你開啟檔案時就不需要額外的異常處理語句 def myopen infile,mode r try fo open infile,mode...