摘要:文件打開的方式有多種。讀取模式寫入模式。若文件不存在,則會創建文件。但是文件必須已經存在。模式文件的讀寫是文本模式,這就意味著會把轉換成平臺相關的換行符。
現代的操作系統其實都不允許程序直接讀寫系統中的文件,而是程序通過請求系統打開一個文件對象,然后再對文件對象進行讀寫。
import logging try: f = open("getAttar.py", "r") content = f.read() print content except IOError, e: logging.error(e) finally: if f: f.close()
python在申請打開文件對象的時候,可能會存在文件不存在的情況,則會拋出IOError需要我們捕獲處理。
文件對象一旦打開,就需要我們去關閉它。否則其會占用系統資源。
文件打開的方式有多種。
open(name[, mode[, buffering]])mode:
"r": 讀取模式
"w": 寫入模式。如果文件已經存在,則會先清空。若文件不存在,則會創建文件。
"a": append,添加。在unix系統,在,a模式意味著將內容寫入到文件末端而不管當前的指針在哪里。
"r+": 兼具讀寫功能。但是文件必須已經存在。而且只會覆蓋寫入的區域,而保留未被覆蓋的區域。例如文件中有“111111”六個1,用該模式寫入“000”后就變成“000111”了。
"w+":兼具讀寫功能。但是會清空文件。
模式文件的讀寫是文本模式,這就意味著會把
轉換成平臺相關的換行符。
如果需要操作二進制文件,則需要添加模式"b"。
0: 不緩存
1: 緩存一行
其他正整數:代表相應的bytes被緩存了。
負整數:系統默認
我們可以使用with ... as ...這種語句替代try...finally..
with語句用于對資源進行控制的場合。
例如:
with open("world.txt", "r") as f: for line in f: print line
需要了解更多,可以閱讀:
http://www.ibm.com/developerw...
open()打開的一個文件后返回是file-like object.除了文件file以外,還可以是內存中的字節流,網絡流,自定義流等等。
StringIO創建的就是file-like object,常用做臨時緩沖。
Python中默認讀取文件是以text模式讀取。讀取圖片、視頻、音頻等二進制文件的時候,可以添加模式b代表以二進制模式讀取。
字符編碼assci碼給英語世界常用的字符和英文字母變了個號。但是未考慮其他國家的符號。
unicode 給世界上幾乎所有的符號都編了個號碼。
utf-8是unicode的一種實現形式。
在python中,我們可以將讀取的字符解碼(decode)成unicode,然后將unicode編碼成制定的編碼形式。
例如
f = open("demo.txt", "r") print f.read().decode("gbk") f.close()
上述代碼中將讀取到的文本按gbk編碼方式解碼成unicode。
但是總是這么手工解碼比較麻煩,python為我們提供了codecs模塊。例如:
import codecs with codecs.open("world.txt", "rb", encoding="gbk") as f: for line in f: print line
除了上述按特定編碼格式解碼文件,然后按unicode格式存儲在內存中。
我們也可以將內存中的unicode以特定格式寫入文本。
# coding=utf-8 import codecs with codecs.open("world.txt", "rb", encoding="utf-8") as rf, codecs.open("world2.txt", "wb", encoding="gbk") as wf: wf.write(rf.read())
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38343.html
摘要:鍵盤輸入提供了內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。可以接收一個表達式作為輸入,并將運算結果返回。將返回該文件中包含的所有行。將寫入到文件中然后返回寫入的字符數。當處理一個文件對象時使用關鍵字是非常好的方式。 1. 鍵盤輸入 Python提供了 input() 內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。input 可以接收一個 Python 表達式作為輸入,...
摘要:可以傳入一個字符初始化。只能處理字符串類型的數據,可以用于處理二進制類型的數據。在搜索文檔的時候,發現在下也有一個,而且兩者非常類似。 之前我們所說的都是讀寫真正的文件。其實我們也可以在內存中虛擬一個文件進行讀寫。Python給咱們提供的官方module有io.StringIO和io.BytesIO. io.StringIO String IO用于在內存在讀寫字符串。StringIO可...
摘要:學習筆記七數學形態學關注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現代方法基于區域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
摘要:本章主要是學習的文件操作,主要是從文件中讀取數據以及將數據存儲到文件中,還有錯誤處理,異常類,模塊等。函數返回一個文件對象,用于接收該對象。異常中使用被稱為異常的特殊對象來管理程序執行期間發生的錯誤。 《Python編程:從入門到實踐》筆記。本章主要是學習Python的文件操作,主要是從文件中讀取數據以及將數據存儲到文件中,還有錯誤處理,異常類,json模塊等。 1. 從文件中讀數據 ...
閱讀 690·2021-11-25 09:43
閱讀 2959·2021-11-24 10:20
閱讀 1014·2021-10-27 14:18
閱讀 1086·2021-09-08 09:36
閱讀 3392·2021-07-29 14:49
閱讀 1791·2019-08-30 14:07
閱讀 2945·2019-08-29 16:52
閱讀 3055·2019-08-29 13:12