Python调用grep,根据关键字生成多个文件
python调用linux中的grep,根据多个不同关键字提取所在行的内容,生成多个文件如文件1.txt(文件很大很大)
22333 124a 4328
3214 de12 213123423A
2321 2a23 ADLKEIO
4421 12cD 44839X
。。。。
关键词“a”,"de",“c” 生成a.txt de.txt c.txt
a.txt包含:
22333 124a 4328
2321 2a23 ADLKEIO
。。。
de.txt包含:
3214 de12 213123423A
。。。
c.txt包含:
4421 12cD 44839X
。。。
只是拿三个关键字举例 我保证这是你没讲明白不是我没看明白。 python调用linux中的grep,根据多个不同关键字提取所在行的内容,生成多个文件
如文件1.txt(文件很大很大)
22333 124a 4328
3214 de12 213123423A
2321 2a23 ADLKEIO
4421 12cD 44839X
。。。。
如关键词有三个,为a,de和c,通过提取关键词所在的行生成a.txt, de.txt 和c.txt三个文件
a.txt包含:
22333 124a 4328
2321 2a23 ADLKEIO
。。。
de.txt包含:
3214 de12 213123423A
。。。
c.txt包含:
4421 12cD 44839X
。。。
这里只是拿三个关键字举例,关键词可能有多个,因此生成的文件也可能有多个
pandas 直接提取参考代码:
import pandas as pd
df = pd.read_csv('Test.txt', sep='\t', header=None)
keys = ['a', 'de', 'c']
for key in keys:
df.str.contains(key)].to_csv(key+'.txt', sep='\t', index=False, header=None) Twilight6 发表于 2021-6-27 21:32
pandas 直接提取参考代码:
他这个是用来干嘛的啊 nahongyan1997 发表于 2021-6-27 21:54
他这个是用来干嘛的啊
数据提取吧,不太清楚做什么用的
本帖最后由 阿奇_o 于 2021-6-27 23:32 编辑
可以试一下:
from subprocess import call
call('cat t1.txt |grep -E "a+" >a.txt', shell=True)
若文件真的很大,可以先拆分为小文件,如用shell命令split,
将每一百万行拆分为一个文件,每个拆分后的文件名带指定序号后缀:
split --lines=1000000 --numeric-suffixes --suffix-length=2 Big_File.txtbigfile_sp
{:10_254:} 我来领币了,命中率10%,哭了 {:10_254:} {:9_241:} 好
页:
[1]