2015-10-22 52 views
0

讀取已打開文件的第一個字節而不搞亂文件位置的最佳方法是什麼?這是太多的跳來跳去:在Python中讀取打開文件的第一個字節

current_position = f.tell() 

f.seek(0) 
b1 = f.read(1) 
b2 = f.read(1) 

f.seek(current_position, 0) 
+2

你想達到什麼目的?爲什麼不在第一次打開文件時存儲前幾個字節? – jonrsharpe

+0

我看到這段代碼沒有錯。 –

+0

您所指的文件'位置'只是一個小型整數,其行爲與書籤相當。移動它並不是什麼大事。 –

回答

2

你可以使用os.pread(fd, buffersize, offset)但只在Python 3.3增加。像這樣:

os.pread(f.fileno(), 2, 0) 

讀取文件開始處的2個字節。

另一種辦法是複製的fd,然後尋求在重複,然後關閉重複:

d = os.dup(f.fileno()) 
os.lseek(d, 0, 0) 
b1 = os.read(d, 1) 
b2 = os.read(d, 1) 
os.close(d) 

爲什麼不能文件對象直接複製?