在用python進行資料處理程式設計中,往往涉及到檔案io口讀寫,io口的讀寫效能會極大的影響程式的執行時間。在進行檔案寫入時,一般會存在兩種情況。第一種是資料到來馬上進行資料寫入,即來一條寫一條,第二種是資料到來時先儲存到記憶體中,等到資料量儲存到一定程度時,再一次性寫入檔案中。那麼,這兩種情況孰優孰劣?下面用乙個例子展示給大家。
先看第二種情況,程式演示的是:第一次讀取1萬條資料,儲存在列表中,再一次性儲存到檔案中。每存一萬條資料的時間是3.1秒。
#-*- coding: utf-8 -*-
#先讀取1萬條資料再儲存
import
osimport
time
filename="
e:/datacastle/test_file/new.txt
"t=time.time()
data=
count =0
while
true:
with open(
"e:/datacastle/test_file/train_data/20140803_train.txt
",'r
') as f:
with open(filename,'a
') as f:
line =f.readline()
count +=1
if count==10000:
print(time.time()-t)
f.writelines(data)
count=0
data=
t=time.time()
raw_input(
"over
")
每儲存1萬條資料的執行時間如下:
c:\users\administrator>python e:\datacastle\test_file\read_big_file.py>>3.18099999428
>>3.13100004196
>>3.12999987602
>>3.14100003242
再看第二種情況,每讀一條資料就儲存一條資料,每儲存一萬條執行的時間約為5秒
#-*- coding: utf-8 -*-
#讀一條存一條
import
osimport
time
filename="
e:/datacastle/test_file/new.txt
"t=time.time()
data=
count =0
while
true:
with open(
"e:/datacastle/test_file/train_data/20140803_train.txt
",'r
') as f:
with open(filename,'a
') as f:
line =f.readline()
f.writelines(line)
count +=1
if count==10000:
print(time.time()-t)
count=0
t=time.time()
每儲存1萬條資料的執行時間如下:
c:\users\administrator>python e:\datacastle\test_file\read_big_file.py>>4.4889998436
>>4.70700001717
>>4.90199995041
>>4.48600006104
>>5.55800008774
>>5.29799985886
python 關於檔案的一些簡單操作
file1 open test.txt w 覆蓋原有內容寫入,指標處於檔案開頭 開啟乙個檔案用於讀寫。如果檔案存在,刪除重新編輯,否則新建寫入 file1.write test1 在開啟的test.txt中寫入test1內容 file1.close 關閉檔案file1,使用 open 方法一定要保證...
關於檔案的一些操作
今天遇到一些關於檔案的知識點 codeblocks16.0裡面不支援 include只有 include使用時要把std包包含在裡面 using namespace std 而vc6.0卻不能使用這個包 下面是課件上的一些知識點,以後用到的時候再拿出來看看吧 include void main in...
python 關於資料夾的一些操作
3 判斷某一資料夾是否為空?4 查詢某一目錄下的空資料夾 5 刪除檔案或資料夾 6 返回 上級 目錄 import os file or dir c users 54719 desktop 檔案路徑 if os.path.exists file or dir 如果檔案存在 print 資料夾或檔案存...