美文网首页
python:从文本读参数,按行数批量拆分文件

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

作者: 胡童远 | 来源:发表于2020-12-09 10:00 被阅读0次

导读

从另一个文本中读取需要的参数,不是命令行。将文件等行数拆分,最后余数行用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

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/cmncgktx.html