我刚刚开始学习python,并且在使用某些东西时非常困难。我有一个文本文件有一个来源,就像科学论文中的参考文献。我需要编写一个脚本来检查此文件中的日期是否介于1900和2012之间。如果是,则需要在列表中垂直列出日期。
如果来源有两个日期1934年和1968年,则会打印出来:
1934
1968
到目前为止我已经
了f=open('filename.txt')
words=f.readlines()
year=range(1900,2013)
我尝试了各种后续行,但从未到过任何地方。例如:
for year in words:
print year
我根本不确定如何继续。有人可以帮忙吗?
答案 0 :(得分:2)
我认为您需要做三件事才能使代码正常工作。第一种是使用简单的正则表达式和re
模块在文本文件中搜索数字字符。然后,您需要将找到的每个字符串转换为整数。最后,您可以将其与边界数进行比较:
import re
with open("filename.txt") as f:
text = f.read() # read the whole file
for match in re.finditer(r"\d+", text): # find all strings of consecutive digits
num = int(match.group()) # convert to integer
if 1900 <= num <= 2013: # test boundaries
print num