• 注册
当前位置:1313e > python >正文

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

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录