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就是乙個指向已匯入模組的變數,通過該變數,我們...