鱼C论坛

 找回密码
 立即注册
查看: 2813|回复: 11

Python调用grep,根据关键字生成多个文件

[复制链接]
发表于 2021-6-27 20:48:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

只是拿三个关键字举例
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-27 21:20:50 | 显示全部楼层
我保证这是你没讲明白不是我没看明白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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
。。。

这里只是拿三个关键字举例,关键词可能有多个,因此生成的文件也可能有多个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 21:32:57 | 显示全部楼层


pandas 直接提取参考代码:

  1. import pandas as pd

  2. df = pd.read_csv('Test.txt', sep='\t', header=None)
  3. keys = ['a', 'de', 'c']
  4. for key in keys:
  5.     df[df[1].str.contains(key)].to_csv(key+'.txt', sep='\t', index=False, header=None)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 21:54:33 | 显示全部楼层
Twilight6 发表于 2021-6-27 21:32
pandas 直接提取参考代码:

他这个是用来干嘛的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 22:00:58 | 显示全部楼层

回帖奖励 +2 鱼币

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



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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 23:18:36 | 显示全部楼层
本帖最后由 阿奇_o 于 2021-6-27 23:32 编辑
  1. 可以试一下:
  2. from subprocess import call
  3. call('cat t1.txt |grep -E "a+" >a.txt', shell=True)

  4. 若文件真的很大,可以先拆分为小文件,如用shell命令split,
  5. 将每一百万行拆分为一个文件,每个拆分后的文件名带指定序号后缀:
  6. split --lines=1000000 --numeric-suffixes --suffix-length=2 Big_File.txt  bigfile_sp
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 23:34:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-27 23:35:22 | 显示全部楼层

回帖奖励 +2 鱼币

我来领币了,命中率10%,哭了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-29 17:30:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-1 23:45:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-3 15:40:09 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 20:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表