python檔案讀寫

2021-10-08 08:23:12 字數 1512 閱讀 4975

實驗室導師又有任務,從乙個.dat檔案中讀取波形資料,通過乙個自編碼網路進行異常檢測。可是對我這種小白來說真的艱難。從最基礎的檔案讀寫開始吧。

先說資料,是乙個int16型的陣列。說是陣列,但是讀取也並不簡單。眾所周知,資料在計算機中是用二進位制的形式儲存的。int16型有符號整數。16位,16bit,也就是兩個位元組。那麼自然而然的想到,讀取兩個位元組(bytes)的資料(也就是16bit),然後把它轉化成int16的整型(即十進位制整型)。資料就變得可以處理了。

先放乙個不同位數的整型資料範圍吧,經常會用的到。

int8 //等於byte,-128 127

int16 //等於short, 佔2個位元組. -32768 32767

int32 //等於int, 佔4個位元組. -2147483648 2147483647

int64 //等於long, 佔8個位元組. -9223372036854775808 9223372036854775807

這裡補充乙個小知識點,python3中的int型別是動態長度的,是長整型,理論支援無限大的數字。對乙個int型例項執行內建的__sizeof__方法,可以檢視占用的位元組數。其中0佔了24個位元組,其他數字一般占用28個位元組。

>>> f = open('/users/michael/test.txt', 'r')

我們知道,在python3中,字串型別(str)包含的是unicode characters。這種特性使得我們在python3中可以定義包含unicode character的字串,並甚至可以在變數識別符號中使用非ascii字元。

那麼以上的**做的是這樣一件事:定義乙個檔案物件,檔案物件標明將用讀字元的手段來讀取這個檔案中的內容。

>>> f.read()

'hello, world!'

上面的**一次性讀取檔案的全部內容,把內容讀到記憶體,用str物件表示。

此外還可以呼叫read(size),每次讀取size個位元組的內容。或者呼叫readline(),每次讀取一行內容。將每一行的內容存在str裡,並返回乙個str的列表。

with open('/path/to/file', 'r') as f:

print(f.read())

>>> f = open('/users/michael/gbk.txt', 'r', encoding='gbk')

>>> f.read()

'測試'

二進位制檔案:

如果要讀取二進位制檔案,用rb模式開啟檔案即可。

b'\xff\xd8\xff\xe1\x00\x18exif\x00\x00...' # 十六進製制表示的位元組

寫檔案:

寫檔案和讀檔案是一樣的,呼叫open()函式時,傳入'w'或者'wb'表示寫文字檔案或者寫二進位制檔案。

Python檔案讀寫

今天在看python檔案讀寫操作,發現python file name mode buffering file 函式用於建立乙個file物件,它有乙個別名叫open 可能更形象一些,它們是內建函式。來看看它的引數。它引數都是以字串的形式傳遞的。name是檔案的名字。mode 是開啟的模式,可選的值為...

python檔案讀寫

檔案讀寫模式 模式 描述 r以讀方式開啟檔案,可讀取檔案資訊。w以寫方式開啟檔案,可向檔案寫入資訊。如檔案存在,則清空該檔案,再寫入新內容 a以追加模式開啟檔案 即一開啟檔案,檔案指標自動移到檔案末尾 如果檔案不存在則建立 r 以讀寫方式開啟檔案,可對檔案進行讀和寫操作。w 消除檔案內容,然後以讀寫...

python 讀寫檔案

python讀寫檔案在文字不大的情況可以用正常的 open 然後讀入 readline行讀入 或者整體讀入 read readlines 基本知識 file open path,r 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只...