11 Python 檔案和流

2022-07-02 10:12:07 字數 1777 閱讀 5992

1、開啟檔案

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

open函式使用乙個檔名作為其唯一的乙個強制引數,然後返回乙個檔案物件。模式(mode)和緩衝區(buffering)是可選的。

模式:'r'  讀模式

'w'   寫模式

'a'   追加模式

'b'    二進位制模式,新增到其他模式中使用

'+'   讀/寫模式,新增到其他模式中使用

'+'引數可以用來任何模式後,指明讀和寫都是可以的。'b'模式改變處理檔案的方法。

二進位制模式和文字模式的區別:在使用二進位制模式時,python會原樣地給出檔案中的內容,但文字模式下則不一定。python會在文字模式下做一些轉換:當在windows下用文字模式讀取檔案時,python會將\r\n轉換成\n,相反,當在windows下用文字模式寫檔案時,會把\n轉換成\r\n。

緩衝:如果引數為0,i/o就是無緩衝,所有的讀寫操作直接針對硬碟。如果是1,i/o就用記憶體來代替硬碟,是程式更快,使用flush或close時才把內容寫入硬碟。

2、讀和寫

f = open()

f.read(n) 讀取n個位元組

f.write(str)

f.close()

3、管式輸出

使用管道可以在乙個命令的後面續寫其他多個命令,管道符號將乙個命令的標準輸出和下乙個命令的標準輸入連在一起。

$ cat test.txt | python somescript.py

檔案流隨機訪問函式seek(offset),把當前位置移動到offset定義的位置。

4、讀寫行

file.readline(n)當n為空是,讀取單獨一行,並讀取檔案換行符,當n為非負值時讀取檔案的前n個字元。

file.readlines()讀取乙個檔案中的所有行,並以列表的返回。

file.writeline()沒有此函式。

file.wirtelines()將乙個字串列表寫入到字串檔案中。

5、如果想確保檔案被關閉了,那麼應該使用try/finally語句,並且在finally字句中呼叫close()方法。

try:

file = open()

#操作檔案

finaly:

file.close()

with語句可以開啟檔案並將其賦值到變數上:

with open() as somefile:

do_someting(somefile)

6、對檔案內容進行迭代

6.1 按位元組處理,在迴圈裡做如下操作

f.read(1)

6.2 按行處理,在迴圈裡做如下操作

f.readline()

6.3 處理整個檔案

f.read() 將檔案當做乙個字串來獲取

f.readlines() 將檔案讀入到乙個字串列表

7、使用fileinput實現懶惰行迭代

懶惰行迭代的原因:在讀取非常大的檔案,readlines會占用太多的記憶體,而懶惰行迭代只是讀取檔案中實際需要的部分。

import fileinput

for line in fileinput.input(filename):

process(line)

8、檔案迭代器

檔案物件是可以按照行進行迭代的。

f = open(filename)

for line in f:

process(line)

f.close()

可以對檔案迭代器執行和普通迭代器相同的操作:list(open(filename))

11 python 元組 字典

元組 tuple與列表相似,資料不可修改,使用小括號 來定義 元組不支援修改,只支援遍歷 查詢操作 列表資料可修改 1.元組 my tuple 11,22,30 print 1.my tuple 0 2.元組中有乙個元素,後面須加 否則會報錯my tuple 11,print 2.my tuple ...

1 1Python入門簡介

1.認識cpu和記憶體 cpu 處理器 處理指令和運算資料 記憶體 儲存資料。對於cpu要處理的資料儲存在記憶體中。臨時儲存資料。硬碟是長期儲存資料的場所,當cpu需要處理某些資料的時候,會將硬碟中的資料先匯入到記憶體中,然後再給cpu進行處理,處理完後,cpu將資料寫入記憶體中,再儲存到硬碟中進行...

11 python高階 中模組和包

3 動態匯入模組 4 python之使用 future 5 python安裝第三方模組 要使用乙個模組,我們必須首先匯入該模組。python使用import語句匯入乙個模組。例 如,匯入系統自帶的模組 math import math 你可以認為math就是乙個指向已匯入模組的變數,通過該變數,我們...