我想在Python中使用NON可订阅对象创建一个文本文件,我不知道如何继续。我想提取列表的每个月,并为每个月创建一个单独的行。以下是非可订阅对象列表和错误的示例:
我使用的代码如下:
months=['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'Novemeber', 'December']
for i in range(len(sections)):
if (' tax ' in sections[i]
or ' Tax ' in sections[i]
or ' policy ' in sections[i]
or ' Policy ' in sections[i]):
pat=re.compile("|".join([r"\b{}\b".format(m) for m in months]), re.M)
month = pat.search("\n".join(sections[i].splitlines()[0:6]))
print(month)
outfile = open('H:/Uncertainty_Data/A_2005_Months.txt', 'w')
outfile.writelines(month['match'])
outfile.close
任何帮助都非常感谢!
干杯,
答案 0 :(得分:1)
month
是一个正则表达式匹配对象,如果您想访问与之匹配的文本,则无法将其编入索引(它不是可迭代的)。
您想要使用
outfile.write(month.group(0))
虽然(因为你在循环之外这样做)只能写出匹配的最后一个月。如果要收集所有匹配项并将其写入文件,请执行类似
的操作outputs = []
pat = re.compile("|".join([r"\b{}\b".format(m) for m in months]), re.M)
for section in sections:
if any(item in section for item in (' tax ', ' Tax ', ' policy ', ' Policy ')):
month = pat.search("\n".join(section.splitlines()[0:6]))
outputs.append(month.group(0))
with open('H:/Uncertainty_Data/A_2005_Months.txt', 'w') as outfile:
outfile.writelines(outputs)