Python论坛  - 讨论区

标题:[python-chinese] 怎样能一次性从文件读取大于2k以上的数据

2006年12月20日 星期三 17:13

yang haijun veldtwolf在gmail.com
星期三 十二月 20 17:13:42 HKT 2006

我碰到的问题是:读取blkidx.dat文件,该文件中存储索引数据,我想把其中的一部分数据缓冲到内存中
使用:
cf = open('blkidx.dat', 'r')
buf = cf.read(5*1024)
print len(buf)

结果发现实际读取的长度仅仅为1380大小,其余的都没有读取近来。
想要实现类似c++中的功能,char* buf = new char(5*1024),然后将数据读取放在buf中,在内存中随时可以直接访问。

在python中使用read读取的最大长度就是1380吗?
使用哪种方法可以读取并且保存大容量的数据???
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061220/d48b86fa/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月20日 星期三 17:23

Yung-Yu Chen yungyuc在gmail.com
星期三 十二月 20 17:23:03 HKT 2006

On 12/20/06, yang haijun <veldtwolf在gmail.com> wrote:
>
> 我碰到的问题是:读取blkidx.dat文件,该文件中存储索引数据,我想把其中的一部分数据缓冲到内存中
> 使用:
> cf = open('blkidx.dat', 'r')
> buf = cf.read(5*1024)
> print len(buf)
>
> 结果发现实际读取的长度仅仅为1380大小,其余的都没有读取近来。
> 想要实现类似c++中的功能,char* buf = new char(5*1024),然后将数据读取放在buf中,在内存中随时可以直接访问。
>
> 在python中使用read读取的最大长度就是1380吗?
> 使用哪种方法可以读取并且保存大容量的数据???


你的 'blkidx.dat' 是不是 binary?
如果你要讀  binary,請用
cf = open('blkidx.dat', 'rb')
然後用 struct 拆解。

你的寫法是 read in ASCII mode。

無論 read in binary or ASCII mode,都可以用
data = cf.read()
一次全讀進記憶體。


-- 
with regards,
Yung-Yu Chen

yyc在seety.org
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20061220/10d44b30/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月20日 星期三 17:23

3751 lwm3751在gmail.com
星期三 十二月 20 17:23:29 HKT 2006

open('blkidx.dat', 'rb')才对!!!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061220/07750689/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月20日 星期三 17:35

Valar sighofwraith在gmail.com
星期三 十二月 20 17:35:47 HKT 2006

cf = open('blkidx.dat', 'r'),ÕâÑù¶Áµ½EOF¾ÍÍ£Ö¹ÁË¡£¡£mode¼ÓÉÏr

ÔÚ06-12-20£¬yang haijun <veldtwolf在gmail.com> дµÀ£º
>
> ÎÒÅöµ½µÄÎÊÌâÊÇ£º¶ÁÈ¡blkidx.datÎļþ£¬¸ÃÎļþÖд洢Ë÷ÒýÊý¾Ý£¬ÎÒÏë°ÑÆäÖеÄÒ»²¿·ÖÊý¾Ý»º³åµ½ÄÚ´æÖÐ
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061220/004cf814/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月20日 星期三 17:36

Valar sighofwraith在gmail.com
星期三 十二月 20 17:36:46 HKT 2006

¿È¡£¡£²»µ«ÍíÁË£¬»¹Ð´´íÁË¡£¡£ÊÇ'b'¡£¡£¡£º¹¡£¡£
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061220/f793a0af/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月20日 星期三 17:50

yang haijun veldtwolf在gmail.com
星期三 十二月 20 17:50:34 HKT 2006

呵呵,汗颜,
我看了代码,确实是我搞错了,

cf = open('blkidx.dat', 'rb')
buf = cf.read(5000*1024)
print len(buf)

这样都可以。

该文件是二进制文件。我落下了'b'没写上,所以出现了错误。

2006/12/20, 3751 <lwm3751 at gmail.com>:
>
> open('blkidx.dat', 'rb')才对!!!
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061220/9d430ef7/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月20日 星期三 17:52

yang haijun veldtwolf在gmail.com
星期三 十二月 20 17:52:20 HKT 2006

呵呵,汗颜,
我看了代码,确实是我搞错了,

cf = open('blkidx.dat', 'rb')
buf = cf.read(5000*1024)
print len(buf)

这样都可以。

该文件是二进制文件。我落下了'b'没写上,所以出现了错误。

在06-12-20, Valar <sighofwraith at gmail.com> 写道:
>
> 咳。。不但晚了,还写错了。。是'b'。。。汗。。
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to   python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061220/f79852ba/attachment-0001.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号