python按行拆分文件_python:从文本读参数,按行数批量拆分文件

导读

从另一个文本中读取需要的参数,不是命令行。将文件等行数拆分,最后余数行用tail保存到最后一个文件。

一、待拆分文件

cat test.txt

aaaaaaaaaaaaaaaa

bbbbbbbbbbbbbb

vvvvvvvvvvvvvvvvv

cccccccccccccccccc

ddddddddddddddddddd

eeeeeeeeeeeeeeeeeeeeeee

ffffffffffffffffffffff

gggggggggggggggggg

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

jjjjjjjjjjjjjjj

lllllllllllllllllll

kkkkkkkkkkkkkkkkkkkkk

iiiiiiiiiiiiiiiiiiiiiii

二、参数文件

cat parameter.py

#!/usr/bin/env python3

size = 3 # 每份3行

inpath = "./test.txt"

三、python3脚本

cat split_file_line.py

#!/usr/bin/env python3

import re,sys,os

import argparse

from parameter import size,inpath

with open(inpath) as infile:

infile = infile.readlines()

nrow = len(infile)

start = 0

end = size

for i in range(nrow//size):

#print(''.join(infile[start:end]))

batch_name = "batch_" + str(i+1) + ".path"

with open(batch_name, 'w') as o:

o.write(''.join(infile[start:end]))

start = start + size

end = end + size

os.system("tail -n " + str(nrow%size) + " " + inpath + " > batch_left.path")

四、运行

python3 split_file_line.py

for i in ./batch_*.path; do echo $i; cat $i; done;

./batch_1.path

aaaaaaaaaaaaaaaa

bbbbbbbbbbbbbb

vvvvvvvvvvvvvvvvv

./batch_2.path

cccccccccccccccccc

ddddddddddddddddddd

eeeeeeeeeeeeeeeeeeeeeee

./batch_3.path

ffffffffffffffffffffff

gggggggggggggggggg

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

./batch_4.path

jjjjjjjjjjjjjjj

lllllllllllllllllll

kkkkkkkkkkkkkkkkkkkkk

./batch_left.path

iiiiiiiiiiiiiiiiiiiiiii

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值