按指定行数切割文本;相同列名(>=2个列名)行加和。
从别的博主那里拷贝过来的,忘记记录地址了
切割
#!/usr/bin/env python
f = open('tpm_all.txt','r') #打开文件
i = 0 #设置计数器
while i<1460431 :
#这里12345表示文件行数,如果不知道行数可用每行长度等其他条件来判断
with open('batch_'+str(i)+'.txt', 'w') as f1:
for j in range(0, 100000) : #这里设置每个子文件的大小
if i < 1460431 : #这里判断是否已结束,否则最后可能报错
f1.writelines(f.readline())
i = i+1
else:
break
使用
# 数据拆分 10万行一个文件
python sc_split.py
同行名加列
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pandas as pd
import os,sys,re
ms, infile, outfile = sys.argv
frame = pd.read_table(infile,sep='\t')
df = frame.groupby(['Name','KO_ID']).sum()
df.to_csv(outfile,sep='\t')
使用
source /public/home/zzumgg03/huty/softwares/miniconda3/etc/profile.d/conda.sh
conda activate py37
for i in `ls ./split_head_rmcol1/`; do
echo -e "nohup python3 ./sc_ko_sum.py ./split_head_rmcol1/$i ./split_head_rmcol1_merge/$i &"
done
网友评论