迭代一个文本文件,每行有三个不同的字段和 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 个条目后创建回复。
希望这对您有所帮助:)
我有一个文本文件,其中大约有 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 个条目后创建回复。
希望这对您有所帮助:)