Python 板


LINE

读取一个档案,关闭後,再次重新读取同一个档案 其资料似乎在第一次读取时会被 windows 放到记忆体里 使第二次读取时直接从记忆体里读取,而不是从硬碟读取 虽然这样让读取速度加快非常多,但是我是想要比对档案是否有出错 如果读取资料是读记忆体那就没意义了 请问该怎麽做才能让第二次读取档案时从硬碟读取? 举例来说,将下面的 code 连续执行两次 import datetime t1 = datetime.datetime.today() with open('filename', 'rb') as file: data = file.read() t2 = datetime.datetime.today() print t2-t1 t1 = datetime.datetime.today() with open('filename', 'rb') as file: data = file.read() t2 = datetime.datetime.today() print t2-t1 得到结果 C:\test>test.py 0:00:05.925000 0:00:00.378000 C:\test>test.py 0:00:00.328000 0:00:00.353000 看起来只有第一次读取资料花了五秒钟,第二三四次都是瞬间读完 资料大小是 600MB,花五秒钟读取跟正常硬碟读取速度差不多 其他的怎麽看都不像是从硬碟读取的阿 还是我哪里理解有误?Google 也不知道要打什麽关键字才能找到答案 请指点一下,谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.46.150.93
1F:→ KSJ:你读完第一次後 修改档案内容 第二次读档会跟着更新吧? 01/09 12:21
2F:推 timTan:我觉得不用考虑到这个层次耶? 01/09 12:43
3F:→ timTan:怀疑到这个层次满细心的,但os帮你做这件事,不易出错吧? 01/09 12:44
4F:→ timTan:你就想成记忆体里的跟硬碟里的事一样的吧。 01/09 12:44
5F:推 chchwy:不需要担心这种事 OS会搞定 01/09 14:02
6F:→ os653:我对OS还挺有信心的,不过对硬体没啥信心 XD 01/09 18:08
7F:→ os653:举例来说,以前有次IDE/SATA转USB传输线出包,多焊一个电阻 01/09 18:11
8F:→ os653:导致资料写入没问题,但读取时会随机出错,档案比对会差一点 01/09 18:12
9F:→ os653:那次事件相关讨论 http://ppt.cc/-cPq,晶片商还出来救火 01/09 18:14
10F:→ os653:自己也有遇过类似情形,但确定是硬碟出错 01/09 18:15
11F:→ os653:像这种情形,有办法写程式在复制资料的时候就找出问题吗? 01/09 18:17
12F:→ os653:本来是想写个带检查的复制程式,但不会真正读取硬碟没用... 01/09 18:20
13F:→ os653:TeraCopy也有这种检查功能,不晓得有没有一样的问题 01/09 18:50
14F:推 angusj:用os.O_DIRECT参数open? 01/09 20:17
15F:→ os653:python 2.6.6 64bit没这个参数耶,document说 01/09 21:15
16F:→ os653:O_ASYNC, O_DIRECT, O_DIRECTORY, O_NOFOLLOW, O_NOATIME 01/09 21:16
17F:→ os653:These constants are GNU extensions and not present if 01/09 21:16
18F:→ os653:they are not defined by the C library. 01/09 21:16
19F:推 angusj:这可能是指win底下没这参数,毕竟这需要OS支援... 01/09 21:39
20F:→ angusj:open有个buffering参数,设为0试试... 01/09 21:50
21F:→ os653:那个没用,之前就试过了 01/09 21:53
22F:→ os653:有找到两个不知道可不可行的方法 01/09 21:57
23F:→ os653:一个是http://ppt.cc/SStY,让file cache to be invalidated 01/09 21:58
24F:→ os653:不过电脑已经移除C++很久了,现在也没空间重装 XD 01/09 21:59
25F:→ os653:而且底下有人说在一台电脑可行但另一台电脑不行,不太稳定 01/09 22:00
26F:→ os653:另外一个是暴力法,直接复制另一个垃圾大档案把cache清掉 01/09 22:01
27F:→ os653:不过在同时间有其他程式在存取之前的档案,此法就很可能无效 01/09 22:02
28F:→ os653:所以这方法不稳定而且有点蠢...还有没有其他解法 Q_Q 01/09 22:03
29F:→ os653:而且第一个方法用pywin写也没用... 01/09 22:36
30F:→ modocolor:你需要翻资料或联络 python team 去确认 01/27 23:45
31F:→ modocolor:也可以改用 Windows 32 API 去做改善,弹性较好 01/27 23:52
32F:→ modocolor:像是效能检测的软体就只能用这种方式测试 01/27 23:52
33F:→ modocolor:硬体读写的这些事情 OS 会接管 所以建议改用Win API @_@ 01/27 23:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP