Python:遍历文件中的行 - python

queries = open(sys.argv[1],"rU")
tweets = open(sys.argv[2],"rU")
for query in queries:
    for tweet in tweets:
        query_words = query.split()
        tweet_words = tweet.split()
        for qword in query_words:
            for tword in tweet_words:
               #Comparison

我正在尝试使用python遍历两个文件,每个文件中有多行。我想做的是,将两个文件中的每一行分解为单词,然后将“查询”文件中当前行中的每个单词与“ tweet”文件中当前行中的每个单词进行比较。上面是我到目前为止所做的,但是它仅适用于查询文件中的第一行,并且跳过了其中的其余行。它确实适用于tweet文件中的每一行。有什么帮助吗?

编辑plicate_comment:我知道在遍历查询文件之后,文件句柄将位于EOF。但是我不明白为什么它不处理查询文件中的下一行,而直接进入EOF。

python大神给出的解决方案

问题是,遍历文件的每一行之后,您位于EOF。您必须再次打开它,或者确保在读取或迭代到下一行之前,按预期方式处理了每一行(在示例中进行了分割和比较)。在您的示例中,由于文件tweetsEOF的第一次迭代后位于query,因此似乎文件queries从“ cc”“跳过”到EOF开始第二次迭代,只是因为没有更多tweet在嵌套循环中进行迭代。

另外,尽管垃圾回收会为您处理文件关闭,但最好是显式关闭每个打开的文件,这是一种更好的做法。

请参考@Smac89's answer进行修改。