请教:我的Python处理文件只能处理前14500行?
PHP中文网
PHP中文网 2017-04-17 14:46:16
[Python讨论组]

我用Python 2.6版和Python 3.2版处理数据。数据比较大,是写在一个.txt文件里。

我用Python处理这个.txt文件,我发现一个问题,我的Python只能处理前14500行!

比如我用shutil.copyfile把这个.txt文件拷贝到另外一个地方,我发现新文件只复制了原文件的前14568行。

比如我用f_in.read().splitlines()读取这个.txt文件,我发现只能读到原文件的前14492行。

是Python不能处理特别大的文件么?

谢谢!

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
PHP中文网

尝试配合使用yieldread([size])

def read_in_chunks(file_object, chunk_size=1024):
    """Lazy function (generator) to read a file piece by piece.
    Default chunk size: 1k."""
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data


f = open('really_big_file.dat')
for piece in read_in_chunks(f):
    process_data(piece)

http://stackoverflow.com/questions/519633/lazy-method-for-reading-big-...

黄舟

文件大的时候可以用read([size])指定大小,然后联系读取。

PHP中文网

可以用readlines(),返回生成器。

for line in open('file','r').readlines():
    print(line)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号