導航:首頁 > 文件教程 > python寫入超大文件

python寫入超大文件

發布時間:2021-12-05 03:26:39

❶ Python :如何寫入指定大小 二進制數據。 例如,每次寫入1KB

用"*"和\xNN. 例子:

寫入1024個二進制值0x00:
file('a.bin','wb').write('\x00'*1024)

文件尾再添加1024個0x01 :
file('a.bin','ab').write('\x01'*1024)

精確 是什麼意思?回 指定具體要寫入的數字答1024還不夠精確?

如果要保證數據實際寫入,刷新IO緩沖區,調用fush或close方法

❷ python 讀取大文件數據怎麼快速讀取

python中讀取數據的時候有幾種方法,無非是read,readline,readlings和xreadlines幾種方法,在幾種方法中,read和xreadlines可以作為迭代器使用,從而在讀取大數據的時候比較有效果.

在測試中,先創建一個大文件,大概1GB左右,使用的程序如下:

[python] view plainprint?
import os.path
import time
while os.path.getsize('messages') <1000000000:
f = open('messages','a')
f.write('this is a file/n')
f.close()

print 'file create complted'

在這里使用循環判斷文件的大小,如果大小在1GB左右,那麼結束創建文件。--需要花費好幾分鍾的時間。

測試代碼如下:

[python] view plainprint?
#22s
start_time = time.time()
f = open('messages','r')
for i in f:
end_time = time.time()
print end_time - start_time
break
f.close()

#22s
start_time = time.time()
f = open('messages','r')
for i in f.xreadlines():
end_time = time.time()
print end_time - start_time
break
f.close()

start_time = time.time()
f = open('messages','r')
k= f.readlines()
f.close()
end_time = time.time()
print end_time - start_time

使用迭代器的時候,兩者的時間是差不多的,內存消耗也不是很多,使用的時間大概在22秒作用
在使用完全讀取文件的時候,使用的時間在40s,並且內存消耗相當嚴重,大概使用了1G的內存。。

其實,在使用跌倒器的時候,如果進行連續操作,進行print或者其他的操作,內存消耗還是不可避免的,但是內存在那個時候是可以釋放的,從而使用迭代器可以節省內存,主要是可以釋放。
而在使用直接讀取所有數據的時候,數據會保留在內存中,是無法釋放這個內存的,從而內存卡死也是有可能的。

在使用的時候,最好是直接使用for i in f的方式來使用,在讀取的時候,f本身就是一個迭代器,其實也就是f.read方法

❸ Python中怎麼修改文件中的某一行內容。(文件很大,不能讀取全部內容)

❹ python 讀寫大文件 for line in file有瓶頸嗎

沒有處理過那麼大的文件
試試生成器吧!
看看下面的代碼,處理2G多的文件,在我的電腦上用時7秒多。

❺ python 一個文件太大+內存裝不下+怎麼讀取 mongo

Python 環境下文件的讀取問題,請參見拙文Python 基礎 —— 文件

這是一道著名的 Python 面試題,考察的問題是,Python 讀取大文件和一般規模的文件時的區別,也即哪些介面不適合讀取大文件。

1. read() 介面的問題

f = open(filename, 'rb')
f.read()12

我們來讀取 1 個 nginx 的日至文件,規模為 3Gb 大小。read() 方法執行的操作,是一次性全部讀入內存,顯然會造成:

MemoryError...12

也即會發生內存溢出。

2. 解決方案:轉換介面

❻ python 如何讀取大文件

你可以不用一次讀完存到內存里,可以一行一行的讀,用.readline()讀一行處理一行,這樣不會占很多內存,多大的文件都沒關系

❼ 內存不足時,python如何處理大文件

手機隨著使用應用軟體,肯定會產生很多垃圾緩存
所以要定期的清理垃圾緩存,就可以了
可以裝個騰訊手機管家,打開清理加速功能,可以自動檢測出手機垃圾緩存,一鍵清理

❽ 使用Python 處理大文件有什麼推薦的方式么

以前弄過一些組學的文件,如果是純文本的話不要用 for..in..語句,用 readlines 讀入幾千行後再用 readline 處理,如果是 utf8 之類非等長的位元組編碼的話先按 byte 編碼讀入文本必要時再解析成別的,最後把文件塞到內存檔再加個多進程。如果要求不高用 bash+awk 比 python 快很多。

❾ 如何用python快速讀取幾G以上的大文件

如果你沒那麼大的內存 解決方法有幾個:

  1. 使用swap 一次性read()讀取

  2. 系統層面分割大文件為數版個小於權系統內存的小文件,分別讀取

  3. 使用python 按數據大小逐塊讀取,使用完數據即釋放該部分內存:

whileTrue:
chunk_data=file_object.read(chunk_size)
ifnotchunk_data:
break
yieldchunk_data

❿ 求一個腳本,如何利用python(python 2.7)分割超大的文本文件可以指定按大小或按行數

defsplitfile(filename,sizelimit,forline=True):
size=0
i=1
out=open("%s.%04d"%(filename,i),'w')
forlineinopen(filename):
size=size+1ifforlineelsesize+len(line)
if(size>sizelimit):
size=1ifforlineelselen(line)
out.close()
i+=1
out=open("%s.%04d"%(filename,i),'w')
out.write(line)
out.close()
if__name__=='__main__':
filename=raw_input("請輸入要分隔的文件名:")
forline=raw_input("輸入數字0按行分隔,輸入其它按大小分隔(請輸入:)")
forline=(int(forline)==0)
sizelimit=int(raw_input("請輸入分割文件的大小:"))
splitfile(filename,sizelimit,forline)

函數splitfile的前二個參數為文件名,分割大小,,第三個參數為True時按行分割,為False時按大小分割

閱讀全文

與python寫入超大文件相關的資料

熱點內容
精通數控機床編程要看什麼書籍 瀏覽:846
小米手機如何刪除應用保留數據 瀏覽:240
葉天明柳韻的小說內容 瀏覽:96
qq我的電腦文件保存多少天 瀏覽:732
小說區 圖片區 瀏覽:641
泰劇床戲的電影 瀏覽:730
印尼電影軟體 瀏覽:340
不斷穿越到鬼片的系統小說 瀏覽:407
s/1k8hQMlbn1hRHGlj0gL3ttw 瀏覽:364
韓國保險銷售之我的丈夫出去了 瀏覽:396
資料庫表間關系一對多 瀏覽:906
真不卡電影網站 瀏覽:789
土豆網在線網站 瀏覽:695
關鍵路徑演算法java 瀏覽:690
iphone5s撥號界面美化 瀏覽:882
usb的通信程序 瀏覽:109
移動歌曲為什麼找不到指定的文件 瀏覽:129
刪除文件哪裡恢復 瀏覽:946
js打開手機相冊 瀏覽:943
愛奇藝詭異電影 瀏覽:214

友情鏈接