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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值