Re: [問題] 如何從硬碟讀取資料而不是從記憶體
搞定了,http://msdn.microsoft.com/en-us/library/aa364218%28VS.85%29.aspx
測試 code
# -*- coding:utf-8 -*-
import win32file
import win32con
import win32security
import datetime
import time
filename = 'filename'
def read():
begin = datetime.datetime.today()
file = open(filename, 'rb')
file.read()
file.close()
print datetime.datetime.today() - begin
time.sleep(5)
def clear():
secur_attr = win32security.SECURITY_ATTRIBUTES()
secur_attr.Initialize()
hfile = win32file.CreateFile(filename, win32con.GENERIC_READ | win32con.GENERIC_WRITE, win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE, secur_attr, win32con.OPEN_ALWAYS, win32file.FILE_FLAG_NO_BUFFERING | win32file.FILE_FLAG_WRITE_THROUGH, 0)
win32file.FlushFileBuffers(hfile)
hfile.Close()
print u'清空快取'
clear()
print u'第一次讀取資料,硬碟亮燈'
read()
print u'第二次讀取資料,硬碟不亮燈'
read()
print u'清空快取'
clear()
print u'第三次讀取資料,硬碟亮燈'
read()
print u'第四次讀取資料,硬碟不亮燈'
read()
print u'第五次讀取資料,硬碟不亮燈'
read()
--------------------------------------------------------------------------
輸出結果
清空快取
第一次讀取資料,硬碟亮燈
0:00:18.751000
第二次讀取資料,硬碟不亮燈
0:00:00.343000
清空快取
第三次讀取資料,硬碟亮燈
0:00:18.766000
第四次讀取資料,硬碟不亮燈
0:00:00.328000
第五次讀取資料,硬碟不亮燈
0:00:00.344000
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.150.93
→
01/10 00:59, , 1F
01/10 00:59, 1F
→
01/10 00:59, , 2F
01/10 00:59, 2F
→
01/10 01:00, , 3F
01/10 01:00, 3F
→
01/10 01:00, , 4F
01/10 01:00, 4F
→
01/10 01:01, , 5F
01/10 01:01, 5F
→
01/22 17:10, , 6F
01/22 17:10, 6F
→
01/22 17:11, , 7F
01/22 17:11, 7F
→
01/22 17:12, , 8F
01/22 17:12, 8F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章