1. 程式人生 > >Python學習筆記之文件和流

Python學習筆記之文件和流

關閉 write finall 存儲路徑 大文件 描述 可選參數 針對 硬盤

打開文件:open(name[,mode[,buffering]]),返回一個文件對象,模式(mode)和緩沖(buffering)是兩個可選參數。

假設有一個名為somefile.txt的文件,存儲路徑為c:\text,打開方式如下:f = open(r‘C:\text\somefile.txt‘)

mode參數:如果open函數只帶一個文件名參數,可以獲得能讀取文件內容的文件對象,如果要進行寫操作,則必須要提供一個模式操作顯式聲明。

描述
‘r‘ 讀模式
‘w‘ 寫模式
‘a‘ 追加模式
‘b‘ 二進制模式(可添加到其他模式中使用)
‘+‘ 讀/寫模式(可添加到其他模式中使用)

‘r+‘參數可以在一個文件讀寫時使用

‘rb‘參數可以讀取一個二進制文件

buffering函數:控制文件的緩沖,如果是0或者False,則I/O操作是無緩沖的(直接對硬盤進行操作),是1或者True則I/O操作針對內存,在進行flush或者close時才更新硬盤上的數據,大於1的數字代表緩沖區大小(字節),為負數表示使用默認緩沖區大小。

基本文件方法:文件或流最重要的能力是提供或接收數據。

>>> f2 = open(F:\Python.txt)
>>> f2.read()
hello worldhi
>>> f3 = open(
F:\Python.txt,a) >>> f3.write(\nPython) 7 >>> f3.close() >>> f2.read() \nPython >>> f2.close()

read方法可以指定讀取個數。

使用writelines(list)對文件進行修改:

f = open(F:\Python.txt)
lines = f.readlines()
f.close()
lines[1] = bye bye
f2 = open(F:\Python.txt,w)
f2.writelines(lines)

關閉文件:

  • 使用try/finally語句,在finally語句中調用close方法;
  • with語句,打開文件並將其賦值到變量上,文件在語句結束時自動關閉,即使是由於異常引起的結束也是如此。

  with open(‘file.txt‘) as file1:

    do_something(somefile)

上下文管理器:是一種支持__exit__和__enter__兩個方法的對象,__enter__方法不帶參數,在進入with語句塊的時候被調用;__exit__方法有三個參數:異常類型、異常對象和異常回溯,在離開方法(帶有通過參數處理的、可引發的異常)時這個函數被調用,如果__exit__返回false,那麽所有異常都不會被處理。

文件可以用作上下文處理器,__exit__關閉文件,__enter__返回文件對象本身。

文件對象是一個可叠代對象,對於大文件的讀取,可以使用如下方法:

f = open(F:\Python.txt)
for x in f:
    print(x)
f.close()

或者直接對文件進行叠代,不使用變量存儲文件對象:

for line in open(F:\Python.txt):
    print(line)

line1,line2 = open(F:\Python.txt)
print(line1)
print(line2)

lines = list(open(F:\Python.txt))
print(lines)

Python學習筆記之文件和流