今天碰到几个学长在做数据仓库,需要把一个8GB的txt文件读出来处理,文件有7000多万行。
他们用C++写,然后碰到了问题:文件打开后while(!f.eof()){...}只读取了10万多行就停了。
于是我写了个python脚本,f=open('xxx.txt', 'r')发现同样只能读10万多行。
然后google了一下,看到StackOverflow上有人说用二进制打开,于是尝试了f=open('xxx.txt', 'rb')结果全读出来了…然后让他们用C++试试二进制打开于是也成功了。
请问其中的原理是什么?
本人当时用的是windows,话说unix下会不会有同样的情况出现?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.