1這是一個建立一個檔案,並在控制台寫入行到建立的檔案中.
#!/usr/bin/env python 'makeTextFile.py -- create text file' import os ls = os.linesep #get filename while True: fname = raw_input('Enter filename:') if os.path.exists(fname): print "ERROR: '%s' already exists" % fname else: break #get file content (text) lines all = [] print "\nEnter lines('.' by itself to quit).\n" #loop until user terminates input while True: entry = raw_input('>') if entry == '.': break else: all.append(entry) #write lines to file with proper line-ending fobj = open(fname, 'w') fobj.writelines(['%s%s' % (x, ls) for x in all]) fobj.close() print 'DONE!' os.linesep表示行結尾標誌, 用本地變數名ls代替它節省了時間,並減少了消耗系統資源.用 raw_input()讀入檔案名稱用列表all[]來儲存每一行文本(它們暫時在記憶體中).最後建立檔案後,用writelines()把記憶體中的行寫入開啟的檔案中.
2.這是一個讀特定檔案內容的小程式.
#!/usr/bin/env python 'readTextFile.py -- read and display text file' #get filename fname = raw_input('Enter filename: ') print #attempt to open file for reading try: fobj = open(fname, 'r') except IOError, e: print "*** file open error:", e else: #display contents to the screen for eachLine in fobj: print eachLine, fobj.close()
(1)注意:由於我們沒有移除代表每行結束的行結束符,我們不得不抵制 print 語句自動產生的行結束符 --通過在print 語句的最後加一個逗號可以達到這一目的
print 後沒有逗號是這種效果:
(2) try-except-else是一個新出現的語句,其中except子句是我們處理錯誤的地方.
注:兩個程式在執行前,需要給檔案增加可執行許可權.
$chmod a+x filename