使用python如何按行数拆分文件?
ringa_lee
ringa_lee 2017-04-17 17:49:06
[Python讨论组]

假设我有1个类似这样方式生成的文件:

with open('my-file.txt','wb') as f:
    for x in xrange(300000):
        f.write('hello,world\n')

现在我们想按照每个文件1000行的方式对之前生成的文件进行拆分,该如何处理?

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHPz
with open('my-file.txt') as myfile:
    index = 0
    while True:
        index += 1
        try:
            with open('my-file-%03d.txt' % index, 'w') as f:
                for _ in xrange(1000):
                    f.write(myfile.next())
        except StopIteration:
            break

如果是不知文件有多大就用try来捕捉StopIteration异常来终止程序

PHP中文网
with open('my-file.txt', 'r') as reader:
    counter = 0
    findex = 0
    for line in reader:
        if counter==0:
            writer = open('file-'+str(findex), 'w')
        print >> writer, line.strip()
        counter += 1
        if counter >= 1000:
            writer.close()
            counter = 0
            findex += 1

其實,Linux 的 split 指令就可以作到這件事了:

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

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