Python按行输出文件内容具体解释及延伸
下面兩端測試代碼分別為筆者所寫,第一段為錯誤版本號。后者為正確版本號:
#! /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語句兩種方式執行結果對照圖
總結
以上是生活随笔為你收集整理的Python按行输出文件内容具体解释及延伸的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv+python机读卡识别(四
- 下一篇: 存储器芯片国产化布局加速 数千亿投资欲打