標籤:Python 學習
在之前我已經學習過raw_input和argv了,在這一節的Python學習中,我學習怎樣使用指令碼開啟普通的文字檔,讀取它並且關閉檔案。關閉檔案很重要,關閉是為了釋放資源,防止記憶體被耗盡,導致機器死結。另外,關閉檔案還有一個作用,當寫檔案時,關閉後將緩衝區中的內容寫入檔案本身。
下面是一個簡單的讀取文字檔的指令碼。
我們可以用兩種方式來實現這個功能:
第一種是一個帶參數的指令碼。
第二種是不使用參數,直接使用變數來讀取檔案的指令碼。
第一種:
1. # 匯入argv模組2. from sys import argv3. # 定義變數名4. script, filename = argv5. # 定義txt變數儲存開啟檔案後的內容6. txt = open(filename)7. # 輸出開啟的檔案名稱,使用read模組讀取txt變數內容然後列印出來。8. print "Here is your file %r: " % filename9. print txt.read()10. # 使用raw_input讀取使用者輸入的檔案名稱11. # 這裡有個疑問?12. print "Type the filename again: "13. file_again = raw_input("> ")14. # 使用txt_again變數儲存開啟使用者輸入的檔案的內容15. txt_again = open(file_again)16. # 通過read模組讀取txt_again的內容,然後列印出來17. print txt_again.read()
代碼第13行有個疑問,為什麼可以指令碼可以識別輸入的是目前的目錄下的檔案?或許以後瞭解的更深了能回答這個問題。
第二種:
# 使用變數定義一個提示句,然後在raw_input中去調用這個變數,這樣使得代碼能夠更加簡潔,缺點是變數也要佔用記憶體空間。prompt = ‘Please input a filename > ‘txt = raw_input(prompt)# 開啟文本,並用一個變數儲存txt_open = open(txt)# 在這裡把內容直接讀到記憶體裡並列印出來,不使用變數來儲存print txt_open.read()txt_open.close()txt_input = raw_input(prompt)txt1 = open(txt_input)print txt1.readline()txt1.close()
Python學習15:Open讀取檔案