绝对是Python的新手。从文本文件中提取整数的问题

时间:2013-10-08 22:41:59

标签: python

我刚刚开始学习python,并且在使用某些东西时非常困难。我有一个文本文件有一个来源,就像科学论文中的参考文献。我需要编写一个脚本来检查此文件中的日期是否介于1900和2012之间。如果是,则需要在列表中垂直列出日期。

如果来源有两个日期1934年和1968年,则会打印出来:

1934
1968

到目前为止我已经

f=open('filename.txt')
words=f.readlines()
year=range(1900,2013)

我尝试了各种后续行,但从未到过任何地方。例如:

for year in words:
    print year

我根本不确定如何继续。有人可以帮忙吗?

1 个答案:

答案 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