迭代一个文本文件,每行有三个不同的字段和 return 第三个字段与前两个字段匹配的查询?

Iterate over a text file having hyphenated three different fields on each line and return third field to a query matching the first two?

我有一个文本文件,其中大约有 100 行数据按以下顺序排列:

Aesop – Aesop’s Fables – example.com
Sherwood – Winesburg – example.com
Lysistrata – Holyland – example.com
Isaac – Nightfall – example.com
Asimov – The Foundation Trilogy – link to mp3

我想编写一个 Twitter 机器人,它将逐行遍历文本文件,搜索包含前两个字段的推文,即。作者姓名和书籍,如果 每行 上的任一字段与推文匹配,则使用第三个字段回复推文,即 link 到 mp3。我如何使用 Python 3 有效地做到这一点?如果有更快的方法请告诉。

我想你正在寻找这样的东西:

#!/usr/bin/env python3

tweet = "Some Tweet including Asimov #Example"

with open("so_textfile_reading.txt", "r") as infile:
    # be aware you are not using a standard minus (HYPHEN-MINUS)
    # in your file to separate the entries, but dashes (EN-DASH)
    entries = [line.strip().split(" – ") for line in infile]
    for author, book, link in entries:
        if (author in tweet) or (book in tweet):
            # Create reply here
            print(link)

您可以遍历文件的所有行。去掉它们的任何空格、换行符等,然后在 - 上将它们拆分以获得作者、书籍和 link 的元组。不过,您必须注意拆分中的字符(请参阅代码中的注释)。

然后你只需要检查作者或这本书是否出现在你的推文中。请注意,每条推文可能会出现多次点击,因此您必须收集点击(例如在列表中)并在访问所有 100 个条目后创建回复。

希望这对您有所帮助:)