Python 檔案操作

2021-06-09 19:59:44 字數 1817 閱讀 6115

1.開啟檔案**如下:

>>> f = open(」d:test.txt」, 「w」)

說明:第乙個引數是檔名稱,包括路徑;

第二個引數是開啟的模式mode

』r':唯讀(預設。如果檔案不存在,則丟擲錯誤)

』w':只寫(如果檔案 不存在,則自動建立檔案)

』a':附加到檔案末尾

』r+』:讀寫

如果需要以二進位制方式開啟檔案,需要在mode後面加上字元」b」,比如」rb」"wb」 等

2.讀取內容

f.read(size)

引數size表示讀取的數量,可以省略。如果省略size引數,則表示讀取檔案所有內容。

f.readline()讀取檔案一行的內容

f.readlines()讀取所有的行到陣列裡面[line1,line2,...linen]。在避免將所有檔案內容載入到記憶體中,這種方法常常使用,便於提高效率。

3.寫入檔案

f.write(string) 將乙個字串寫入檔案,如果寫入結束,必須在字串後面加上」n」,然後f.close()關閉檔案

f.writelines(['a','b']) 將列表寫入檔案,不會自動換行,除非你在元素後加』\n',如'a\n'

4.檔案中的內容定位

f.read()讀取之後,檔案指標到達檔案的末尾,如果再來一次f.read()將會發現讀取的是空內容,如果想再次讀取全部內容,必須將定位指標移動到檔案開始:

f.seek(0)這個函式的格式如下(單位是bytes):

f.seek(offset, from_what)from_what表示開始讀取的位置,offset表示從from_what再移動一定量的距離。

from_what值為0時表示檔案的開始,它也可以省略,預設是0即檔案開頭,為1時表示從檔案當前位置, 為2時表示從檔案末尾。

>>> f.write(』0123456789abcdef』)

>>> f.seek(5) # go to the 6th byte in the file

>>> f.read(1)

5.file的其他方法:

* f.close()

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

* f.flush()

#把緩衝區的內容寫入硬碟

* f.fileno()

#返回乙個長整型的」檔案標籤」

* f.isatty()

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

* f.tell()

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

* f.next()

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

* f.seek(offset[,whence])

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

* f.truncate([size])

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

python 檔案操作

簡明 python 教程 中的例子,python 執行出錯,用open代替file 可以執行。poem programming is fun when the work is done if you wanna make your work also fun use python f open e ...

python檔案操作

1,將乙個路徑名分解為目錄名和檔名兩部分 a,b os.path.split c 123 456 test.txt print a print b 顯示 c 123 456 test.txt 2,分解檔名的副檔名 a,b os.path.splitext c 123 456 test.txt pri...

python檔案操作

python中對檔案 資料夾 檔案操作函式 的操作需要涉及到 os模組和 shutil 模組。得到當前工作目錄,即當前python 指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 os.remo...