在Python代码中,打开文本文件后,如何让它在特定的文本体中提取数据。我会使用正则表达式来记录文本文件正文中的所有数据吗?
文本文件示例:
启用电影:
Channel 1: News
Channel 2: Entertainment
停用电影
启用电视节目
Channel 1: News
Channel 2: Entertainment
禁用电视节目
我的代码目标只是从启用电视节目中提取新闻和娱乐,以禁用电视节目并将其存储到列表中,而不会将数据从启用电影存储到禁用电影。
打印类别的所需输出:
[新闻]
而不是,
[新闻,新闻]
我有重复数据的原因的代码段示例:
category = []
with open("Data.txt") as f1:
for line in f1:
x = re.search(r'(?<=(Channel 1:\s)\w+',line)
if x:
category.append(x.group())
print category
一旦看到标题启用电视节目并在看到禁用电视鞋后停止在列表中存储项目,您是否可以将所有内容存储在列表中?
答案 0 :(得分:1)
如果您想获得唯一值,可以将列表转换为集合myset = set(mylist)
,以便
myset = set(category)
print myset
对于clearnees我把我的另一个答案放在这里,因为它没有在评论中显示确定:
with open('file.txt') as input_data:
for line in input_data:
if line.strip() == 'Enable TV Shows':
break
for line in input_data:
if line.strip() == 'Disable TV shows':
break
print line or store in list
答案 1 :(得分:0)
用于新闻\d: (E.*)
:(.*)C