迭代一个文本文件,每行有三个不同的字段,并将第三个字段返回到匹配前两个字段的查询?

2024-06-01 07:52:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,其中大约有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机器人,它会逐行遍历文本文件,搜索包含前两个字段的tweets,即。作者姓名和书籍,如果每行的任何一个字段与tweet匹配,则用第三个字段回复tweet,即mp3的链接。如何使用Python3高效地完成它?如果有更快的方法,请告诉我


Tags: 数据comexamplemp3tweet文本文件asimovisaac
1条回答
网友
1楼 · 发布于 2024-06-01 07:52:00

我想你在找这样的东西:

#!/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)

您可以遍历文件的所有行。去掉所有空格、换行符等,然后在-上拆分它们,得到author、book和link的元组。不过,您必须小心拆分中的字符(请参见代码中的注释)

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

希望这有帮助:)

相关问题 更多 >