我的文件内容低于
1191,agg.list,ShareCapitalHistory[CapitalAmount],CompanyElementDefinition
838983,atom.list,ShareCapitalHistory[CapitalAmount][*],CompanyElementDefinition
789,agg.list,CapitalAmount,CompanyElementDefinition
08f610,atom.list,CapitalAmount[*],CompanyElementDefinition
我正在编写一个程序来过滤掉与我的键匹配的所有行,忽略括号和星号。密钥将是文件的第三列,其中包含agg.list。例如
CapitalAmount
是一个agg.list值,这将是搜索的关键。当我用上面的搜索键作为键时,我应该获得CapitalAmount [*]。
为实现这一点,我有以下程序
import sys
with open(sys.argv[1]) as myfile:
for row in myfile:
if (sys.argv[2] in row.replace('[', '').replace(']', '') and "[*]" in row):
if row.split(',')[1] != 'agg.list':
print row.split(',')[2]
我将第二个参数传递为CapitalAmount
,但我得到的信息如下所示
CapitalAmount[*]
ShareCapitalHistory[CapitalAmount][*]
我的程序正在检查密钥是否可用,并打印所有包含密钥的行。但我想要的只是打印
CapitalAmount[*]
我听说过regsps并找到了相关的帖子here。 但我不确定如何在我的程序中使用它。非常感谢任何帮助。
答案 0 :(得分:0)
import sys
with open(sys.argv[1]) as myfile:
for row in myfile:
split_line = row.split(',')
list_name = split_line[1]
dict_string = split_line[2]
if "[" in dict_string:
element = dict_string.split('[')[0]
else:
element = dict_string
if list_name != 'agg.list' and sys.argv[2] in element:
print("result of search for", sys.argv[2], ":", dict_string)