python 系統學習筆記(八) 檔案操作

2021-08-27 10:01:47 字數 3414 閱讀 6237

模式

描述r

以讀方式開啟檔案,可讀取檔案資訊。 w

以寫方式開啟檔案,可向檔案寫入資訊。如檔案存在,則清空該檔案,再寫入新內容 a

以追加模式開啟檔案(即一開啟檔案,檔案指標自動移到檔案末尾),如果檔案不存在則建立r+

以讀寫方式開啟檔案,可對檔案進行讀和寫操作。 w+

消除檔案內容,然後以讀寫方式開啟檔案。 a+

以讀寫方式開啟檔案,並把檔案指標移到檔案尾。 b

以二進位制模式開啟檔案,而不是以文字模式。該模式只對windows或dos有效,類unix的檔案是用二進位制模式進行操作的。

檔案物件方法

方法

描述

f.close()

關閉檔案,記住用open()開啟檔案後一定要記得關閉它,否則會占用系統的可開啟檔案控制代碼數。

f.fileno()

獲得檔案描述符,是乙個數字

f.flush()

重新整理輸出快取

f.isatty()

如果檔案是乙個互動終端,則返回true,否則返回false。

f.read([count])

讀出檔案,如果有count,則讀出count個位元組。

f.readline()

讀出一行資訊。

f.readlines()

讀出所有行,也就是讀出整個檔案的資訊。

f.seek(offset[,where])

把檔案指標移動到相對於where的offset位置。where為0表示檔案開始處,這是預設值;1表示當前位置;2表示檔案結尾。

f.tell()

獲得檔案指標位置。

f.truncate([size])

擷取檔案,使檔案的大小為size。

f.write(string)

把string字串寫入檔案。

f.writelines(list)

把list中的字串一行一行地寫入檔案,是連續寫入檔案,沒有換行。

fp.read([size])#size為讀取的長度,以byte為單位

fp.readline([size])#讀一行,如果定義了size,有可能返回的只是一行的一部分

fp.readlines([size])#把檔案每一行作為乙個list的乙個成員,並返回這個list。其實它的內部是通過迴圈呼叫readline()來實現的。如果提供size引數,size是表示讀取內容的總長,也就是說可能唯讀到檔案的一部分。

fp.write(str)#把str寫到檔案中,write()並不會在str後加上乙個換行符

fp.writelines(seq)#把seq的內容全部寫到檔案中(多行一次性寫入)。這個函式也只是忠實地寫入,不會在每行後面加上任何東西。

fp.close()#關閉檔案。python會在乙個檔案不用後自動關閉檔案,不過這一功能沒***,最好還是養成自己關閉的習慣。 如果乙個檔案在關閉後還對其進行操作會產生valueerror

fp.flush()#把緩衝區的內容寫入硬碟

fp.fileno()#返回乙個長整型的」檔案標籤「

fp.isatty()#檔案是否是乙個終端裝置檔案(unix系統中的)

fp.tell()#返回檔案操作標記的當前位置,以檔案的開頭為原點

fp.next()#返回下一行,並將檔案操作標記位移到下一行。把乙個file用於for … in file這樣的語句時,就是呼叫next()函式來實現遍歷的。

fp.seek(offset[,whence])#將檔案打操作標記移到offset的位置。這個offset一般是相對於檔案的開頭來計算的,一般為正數。但如果提供了whence引數就不一定了,whence可以為0表示從頭開始計算,1表示以當前位置為原點計算。2表示以檔案末尾為原點進行計算。需要注意,如果檔案以a或a+的模式開啟,每次進行寫操作時,檔案操作標記會自動返回到檔案末尾。

fp.truncate([size])#把檔案裁成規定的大小,預設的是裁到當前檔案操作標記的位置。如果size比檔案的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些隨機的內容加上去。

# -*- coding: cp936 -*-

poem = '''\

programming is fun

when the work is done

if you wanna make your work also fun:

use python!

'''#寫檔案

f=open('hello.txt','w')

print f.write(poem)

f.close

#讀檔案

f=open('hello.txt','r')

rf=f.readlines()

for elem in rf:

print elem

f.close

#追加f=open('hello.txt','a+')

f.write('thank you')

f.close

#按行讀檔案

f = open('hello.txt','r')

line=f.readline()

while line:

print line

line=f.readline()#如果沒有這行會造成死迴圈

#f.close

#f = open('hello.txt','r')

print 'read() function:' #讀取整個檔案

print f.read()

#f.close()

print 'readline() function:' #返回檔案頭,讀取一行

f.seek(0)

print f.readline()

print f.tell() #顯示當前位置

f.seek(20) #第二行開始

print f.readline()

f.close()

練習題

把字典dic=寫入 ini 檔案 儲存為 key1=value1 .... 然後再讀回 ini 的配置儲存到字典。

作業系統學習筆記(四) 檔案系統

磁碟的0號扇區稱為主引導記錄mbr,用來引導計算機。在mbr的結尾是分割槽表,該錶給出了每個分割槽的起始和結束位址。表中的乙個分割槽被標記為活動分割槽。乙個可能的檔案系統布局。檔案儲存實現的關鍵問題是記錄各個檔案分別用到哪些磁碟塊 連續分配 優點 鍊錶分配 為每個檔案構造磁碟塊鍊錶,每個塊的第乙個字...

linux系統學習 (四)檔案管理

pwd 顯示當前工作目錄 cd 改變當前工作目錄 切換工作目錄 ls 列出當前目錄下的檔案和子目錄 a 列出所有檔案 隱藏檔案 子目錄 r 列出從當前目錄開始的所有的子目錄 檔案 並且將子目錄中的檔案一層層顯示出來 f列出檔案 目錄名 並且顯示所有檔案型別 t 顯示修改時間 l 顯示檔案 目錄的所有...

LINUX系統學習筆記03 檔案與目錄管理

三 檔案與目錄管理 3.1 常見的目錄處理命令 1 cd change directory切換目錄 2 pwd pring working directory顯示當前目錄 3 mkdir make directory建立乙個新的目錄 語法 mkdir 選項 目錄名稱 示例 mkdir usr loc...