我有一个名为item.dat的文件,其中包含括号内的关键字:
[ITEM1]
banana
peach
apple
orange
grapes
[END]
[ITEM3]
tennis
bowling
[END]
........
我想要处理括号中的关键字之间的界限。变量wil包含我想要提取的括号内的行。问题是如何为" [ItemName]"?
执行行比较del item[:]
ItemName = "ITEM3"
with open('item.dat') as input_data:
for line in input_data:
if line.strip() == "\[ItemName\]": # the problematic line
break
for line in input_data: # This keeps reading the file
if line.strip() == '[END]':
break
print line
item.append(line)
答案 0 :(得分:1)
试试这个正则表达式:
^\[(?!END).*]
解释
^\[ # starts with a '[' character
(?!END) # don't match 'END'
.*]$ # take all till the end ']' character
希望它有所帮助。
答案 1 :(得分:0)
我相信您提出的问题可以使用here提供的解决方案进行回答,只需稍加修改即可。由于链接的答案是如此彻底,我不会重复答案,但如果由于某种原因不起作用,请告诉我,我可以提供一些替代方案。
答案 2 :(得分:0)
不知道我是否真的理解这个问题,但提取括号内容值的简单方法是:
var imgWheel = new wheelnav("divId");
imgWheel.createWheel(["img/menu1.png","img/menu2.png","img/menu3.png"]);
使用提供的数据打印两个列表,结果如下:
items = []
variables = []
with open('item.dat') as input_data:
for line in input_data:
line = line.strip()
if line and line[0] == '[' and line[-1] == ']':
variables.append(line)
else:
items.append(line)