找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4475|回复: 6

[求助] 如何实现某行不包含某元素就删除的功能

3

主题

10

帖子

10

积分

贫民

积分
10
xywang52 发表于 2017-6-15 20:49:42 | 显示全部楼层 |阅读模式
在文本中,如果某行包含指定元素,则保留,否则删除,该怎么实现呢?
a.text内容如下:
xxxyyyzzz
100 , 1, abc
200,  2, dsjk
300,  3, sdjsjk
400,  4, sjd
500, 5,aada

现在只想保留包含元素  [100,200,500]的行,其余删除,该怎么实现呢?
回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-6-15 22:06:57 | 显示全部楼层
读取原文件内容, 按照你的规则过滤, 写到新文件中
python3.4.4, win10
回复 支持 反对

使用道具 举报

0

主题

20

帖子

20

积分

贫民

积分
20
zxy 发表于 2017-6-16 11:01:13 | 显示全部楼层
import re
with open('a.test') as f:
        for i in f:
                if(set(re.split(r'( *)?,( *)?',i.strip('\n')))&set(['100','200','500'])):print i,
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
sjie 发表于 2017-6-17 11:57:53 | 显示全部楼层
with open('1.txt','r') as fd:
    line = fd.readlines()
    list1 = set(['100','200','500'])
    print(list(list1))
回复 支持 反对

使用道具 举报

3

主题

10

帖子

10

积分

贫民

积分
10
xywang52  楼主| 发表于 2017-6-20 22:02:16 | 显示全部楼层
sjie 发表于 2017-6-17 11:57
with open('1.txt','r') as fd:
    line = fd.readlines()
    list1 = set(['100','200','500'])

这个直接输出的是['100','200','500']
回复 支持 反对

使用道具 举报

3

主题

10

帖子

10

积分

贫民

积分
10
xywang52  楼主| 发表于 2017-6-20 22:11:17 | 显示全部楼层
zxy 发表于 2017-6-16 11:01
import re
with open('a.test') as f:
        for i in f:

  完美运行结果,多谢~
假如说我想获得在原文件里面的行号,该如何返回呢?
回复 支持 反对

使用道具 举报

0

主题

20

帖子

20

积分

贫民

积分
20
zxy 发表于 2017-6-21 09:32:41 | 显示全部楼层
import re
with open('file.txt') as f:
        for n,i in enumerate(f):
                if(set(re.split(r'( *)?,( *)?',i.strip('\n')))&set(['100','200','500'])):print n,"---",i,
回复 支持 反对

使用道具 举报

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

本版积分规则

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