【发布时间】:2018-06-08 03:53:00
【问题描述】:
我正在尝试运行这个脚本来获取环境“Thonny”上的 rss 提要,但我只是不断收到“IndexError: List index out of range”的错误
Traceback (most recent call last):
File "C:\Users\uri\rssfeedfour.py", line 11, in <module>
url = sys.argv[1]
IndexError: list index out of range
我该如何解决这个问题才能避免一遍又一遍地出现这个错误。我不知道如何解决这个问题,因为我是初学者。我是否需要定义它,如果需要,如何定义?或者我可以把它拿出来并走向不同的方向吗?这是代码。
import feedparser
import time
from subprocess import check_output
import sys
#feed_name = 'TRIBUNE'
#url = 'http://chicagotribune.feedsportal.com/c/34253/f/622872/index.rss'
feed_name = sys.argv[1]
url = sys.argv[2]
db = 'http://feeds.feedburner.com/TheHackersNews'
limit = 12 * 3600 * 1000
current_time_millis = lambda: int(round(time.time() * 1000))
current_timestamp = current_time_millis()
def post_is_in_db(title):
with open(db, 'r') as database:
for line in database:
if title in line:
return True
return False
def post_is_in_db_with_old_timestamp(title):
with open(db, 'r') as database:
for line in database:
if title in line:
ts_as_string = line.split('|', 1)[1]
ts = long(ts_as_string)
if current_timestamp - ts > limit:
return True
return False
#
# get the feed data from the url
#
feed = feedparser.parse(url)
#
# figure out which posts to print
#
posts_to_print = []
posts_to_skip = []
for post in feed.entries:
# if post is already in the database, skip it
# TODO check the time
title = post.title
if post_is_in_db_with_old_timestamp(title):
posts_to_skip.append(title)
else:
posts_to_print.append(title)
#
# add all the posts we're going to print to the database with the current timestamp
# (but only if they're not already in there)
#
f = open(db, 'a')
for title in posts_to_print:
if not post_is_in_db(title):
f.write(title + "|" + str(current_timestamp) + "\n")
f.close
#
# output all of the new posts
#
count = 1
blockcount = 1
for title in posts_to_print:
if count % 5 == 1:
print("\n" + time.strftime("%a, %b %d %I:%M %p") + ' ((( ' + feed_name + ' - ' + str(blockcount) + ' )))')
print("-----------------------------------------\n")
blockcount += 1
print(title + "\n")
count += 1
【问题讨论】:
-
你做过研究吗? stackoverflow.com/q/15121717/3001761 马上就来了
-
我有,但遗憾的是它对这个程序没有帮助。仍然出现错误
-
然后给出新的具体问题的minimal reproducible example。
-
"list index out of range" when using sys.argv[1] 的可能重复项 真的很难想象 @jonrsharpe 是不对的,但请提供有关如何运行脚本以获取您所看到和看到的错误的更多详细信息。
标签: python rss argv sys feedparser