鬼王 发表于 2021-6-27 20:48:07

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
。。。

只是拿三个关键字举例

nahongyan1997 发表于 2021-6-27 21:20:50

我保证这是你没讲明白不是我没看明白。

鬼王 发表于 2021-6-27 21:32:17

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
。。。

这里只是拿三个关键字举例,关键词可能有多个,因此生成的文件也可能有多个

Twilight6 发表于 2021-6-27 21:32:57



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)

nahongyan1997 发表于 2021-6-27 21:54:33

Twilight6 发表于 2021-6-27 21:32
pandas 直接提取参考代码:

他这个是用来干嘛的啊

Twilight6 发表于 2021-6-27 22:00:58

nahongyan1997 发表于 2021-6-27 21:54
他这个是用来干嘛的啊



数据提取吧,不太清楚做什么用的

阿奇_o 发表于 2021-6-27 23:18:36

本帖最后由 阿奇_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

超级玛尼哄 发表于 2021-6-27 23:34:29

{:10_254:}

超级玛尼哄 发表于 2021-6-27 23:35:22

我来领币了,命中率10%,哭了

懒狗李 发表于 2021-6-29 17:30:43

{:10_254:}

明日之光 发表于 2021-7-1 23:45:11

{:9_241:}

1835575828 发表于 2021-7-3 15:40:09

页: [1]
查看完整版本: Python调用grep,根据关键字生成多个文件