国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python學(xué)習(xí)筆記 - 文件讀寫

馬永翠 / 513人閱讀

摘要:文件打開的方式有多種。讀取模式寫入模式。若文件不存在,則會(huì)創(chuàng)建文件。但是文件必須已經(jīng)存在。模式文件的讀寫是文本模式,這就意味著會(huì)把轉(zhuǎn)換成平臺(tái)相關(guān)的換行符。

現(xiàn)代的操作系統(tǒng)其實(shí)都不允許程序直接讀寫系統(tǒng)中的文件,而是程序通過請(qǐng)求系統(tǒng)打開一個(gè)文件對(duì)象,然后再對(duì)文件對(duì)象進(jìn)行讀寫。

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在申請(qǐng)打開文件對(duì)象的時(shí)候,可能會(huì)存在文件不存在的情況,則會(huì)拋出IOError需要我們捕獲處理。
文件對(duì)象一旦打開,就需要我們?nèi)リP(guān)閉它。否則其會(huì)占用系統(tǒng)資源。
文件打開的方式有多種。

open(name[, mode[, buffering]])
mode:

"r": 讀取模式
"w": 寫入模式。如果文件已經(jīng)存在,則會(huì)先清空。若文件不存在,則會(huì)創(chuàng)建文件。
"a": append,添加。在unix系統(tǒng),在,a模式意味著將內(nèi)容寫入到文件末端而不管當(dāng)前的指針在哪里。
"r+": 兼具讀寫功能。但是文件必須已經(jīng)存在。而且只會(huì)覆蓋寫入的區(qū)域,而保留未被覆蓋的區(qū)域。例如文件中有“111111”六個(gè)1,用該模式寫入“000”后就變成“000111”了。
"w+":兼具讀寫功能。但是會(huì)清空文件。

模式文件的讀寫是文本模式,這就意味著會(huì)把 轉(zhuǎn)換成平臺(tái)相關(guān)的換行符。
如果需要操作二進(jìn)制文件,則需要添加模式"b"。

buffering參數(shù)

0: 不緩存
1: 緩存一行
其他正整數(shù):代表相應(yīng)的bytes被緩存了。
負(fù)整數(shù):系統(tǒng)默認(rèn)

with open(filename) as f

我們可以使用with ... as ...這種語句替代try...finally..
with語句用于對(duì)資源進(jìn)行控制的場合。
例如:

with open("world.txt", "r") as f:
    for line in f:
        print line

需要了解更多,可以閱讀:
http://www.ibm.com/developerw...

file-like object

open()打開的一個(gè)文件后返回是file-like object.除了文件file以外,還可以是內(nèi)存中的字節(jié)流,網(wǎng)絡(luò)流,自定義流等等。
StringIO創(chuàng)建的就是file-like object,常用做臨時(shí)緩沖。

二進(jìn)制文件

Python中默認(rèn)讀取文件是以text模式讀取。讀取圖片、視頻、音頻等二進(jìn)制文件的時(shí)候,可以添加模式b代表以二進(jìn)制模式讀取。

字符編碼

assci碼給英語世界常用的字符和英文字母變了個(gè)號(hào)。但是未考慮其他國家的符號(hào)。
unicode 給世界上幾乎所有的符號(hào)都編了個(gè)號(hào)碼。
utf-8是unicode的一種實(shí)現(xiàn)形式。
在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格式存儲(chǔ)在內(nèi)存中。
我們也可以將內(nèi)存中的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())

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/38343.html

相關(guān)文章

  • Python 3 學(xué)習(xí)筆記之——鍵盤輸入和讀寫文件

    摘要:鍵盤輸入提供了內(nèi)置函數(shù)從標(biāo)準(zhǔn)輸入讀入一行文本,默認(rèn)的標(biāo)準(zhǔn)輸入是鍵盤。可以接收一個(gè)表達(dá)式作為輸入,并將運(yùn)算結(jié)果返回。將返回該文件中包含的所有行。將寫入到文件中然后返回寫入的字符數(shù)。當(dāng)處理一個(gè)文件對(duì)象時(shí)使用關(guān)鍵字是非常好的方式。 1. 鍵盤輸入 Python提供了 input() 內(nèi)置函數(shù)從標(biāo)準(zhǔn)輸入讀入一行文本,默認(rèn)的標(biāo)準(zhǔn)輸入是鍵盤。input 可以接收一個(gè) Python 表達(dá)式作為輸入,...

    xavier 評(píng)論0 收藏0
  • python學(xué)習(xí)筆記 - StringIO以及BytesIO

    摘要:可以傳入一個(gè)字符初始化。只能處理字符串類型的數(shù)據(jù),可以用于處理二進(jìn)制類型的數(shù)據(jù)。在搜索文檔的時(shí)候,發(fā)現(xiàn)在下也有一個(gè),而且兩者非常類似。 之前我們所說的都是讀寫真正的文件。其實(shí)我們也可以在內(nèi)存中虛擬一個(gè)文件進(jìn)行讀寫。Python給咱們提供的官方module有io.StringIO和io.BytesIO. io.StringIO String IO用于在內(nèi)存在讀寫字符串。StringIO可...

    CastlePeaK 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來做一些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個(gè)提問: pyth...

    lifesimple 評(píng)論0 收藏0
  • Python學(xué)習(xí)之路9-文件和異常

    摘要:本章主要是學(xué)習(xí)的文件操作,主要是從文件中讀取數(shù)據(jù)以及將數(shù)據(jù)存儲(chǔ)到文件中,還有錯(cuò)誤處理,異常類,模塊等。函數(shù)返回一個(gè)文件對(duì)象,用于接收該對(duì)象。異常中使用被稱為異常的特殊對(duì)象來管理程序執(zhí)行期間發(fā)生的錯(cuò)誤。 《Python編程:從入門到實(shí)踐》筆記。本章主要是學(xué)習(xí)Python的文件操作,主要是從文件中讀取數(shù)據(jù)以及將數(shù)據(jù)存儲(chǔ)到文件中,還有錯(cuò)誤處理,異常類,json模塊等。 1. 從文件中讀數(shù)據(jù) ...

    chenatu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<