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

資訊專欄INFORMATION COLUMN

python學習筆記 - 文件讀寫

馬永翠 / 519人閱讀

摘要:文件打開的方式有多種。讀取模式寫入模式。若文件不存在,則會創建文件。但是文件必須已經存在。模式文件的讀寫是文本模式,這就意味著會把轉換成平臺相關的換行符。

現代的操作系統其實都不允許程序直接讀寫系統中的文件,而是程序通過請求系統打開一個文件對象,然后再對文件對象進行讀寫。

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"。

buffering參數

0: 不緩存
1: 緩存一行
其他正整數:代表相應的bytes被緩存了。
負整數:系統默認

with open(filename) as f

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

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

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

file-like object

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

相關文章

  • Python 3 學習筆記之——鍵盤輸入和讀寫文件

    摘要:鍵盤輸入提供了內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。可以接收一個表達式作為輸入,并將運算結果返回。將返回該文件中包含的所有行。將寫入到文件中然后返回寫入的字符數。當處理一個文件對象時使用關鍵字是非常好的方式。 1. 鍵盤輸入 Python提供了 input() 內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。input 可以接收一個 Python 表達式作為輸入,...

    xavier 評論0 收藏0
  • python學習筆記 - StringIO以及BytesIO

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

    CastlePeaK 評論0 收藏0
  • SegmentFault 技術周刊 Vol.30 - 學習 Python 來做一些神奇好玩的事情吧

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

    lifesimple 評論0 收藏0
  • Python學習之路9-文件和異常

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

    chenatu 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<