下面兩端測試代碼分別為筆者所寫,第一段為錯誤版本號。后者為正確版本號:
#! /usr/bin/python2.7
try:
filename = raw_input(‘please input filename:’)
for eachLine infilename:
print(eachLine)
eachLine.close()
except IOError as err:
print(‘file open error: {0}’.format(err))
#! /usr/bin/python2.7
try: //try....except--------為Python中的異常處理語句
filename = raw_input(‘please input filename:’) //讀取字符
fobj = open(filename, ‘r’) //檢測操作語句
for eachLine in fobj: //循環輸出
print(eachLine)
fobj.close() //關閉對象句柄
except IOError as err:
print(‘file open err:{0}’.format(err))
筆者自己的錯誤:
習慣性的覺得,創建了文件之后,就能夠直接讀取當中的數據。可是須要先檢測文件是否存在,須要用到內建open()函數。
關於內建函數open():
handle = open(file_name,access_mode=’r’)
file_name 變量包括我們希望打開的文件的字符串名字。access_mode表示打開文件的方式,打開方式如表1,假設open成功。一個文件對象句柄會被返回。
全部興許文件操作都必須通過此文件句柄進行。當一個文件對象返回之后,我們就能夠訪問它的一些方法,eg. readlines(),close()。
表1. 文件打開模式
a | 追加模式打開 |
w | 寫模式打開 |
r | 讀模式打開 |
a+ | 讀寫模式打開 |
w+ | 讀寫模式打開 |
r+ | 讀寫模式打開 |
ab | 二進制追加模式打開 |
wb | 二進制寫模式打開 |
rb | 二進制讀模式打開 |
ab+ | 二進制讀寫模式打開 |
wb+ | 二進制讀寫模式打開 |
rb+ | 二進制讀寫模式打開 |
Tips:
代碼中一個有趣的語句。即print(eachLine)。
此語句中能夠通過在末尾加入逗號的方式,抑制自己主動生成的換行符號,由於在文件里自帶換行字符。假設我們不抑制print語句產生的換行符號。就會有額外的空行產生。
兩種方式的執行結果對照圖如圖1。
圖1.print語句兩種方式執行結果對照圖