python 關於檔案操作的一些理解

2022-08-31 20:54:13 字數 1906 閱讀 7782

在用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 資料夾或檔案存...