2015-09-11 28 views
0

我有顺序排列的数据大约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机器人将遍历通过行的文本文件中的行,包含前两个字段搜索鸣叫即,作者姓名和书籍,如果每行中的任一字段与推文匹配,则回复第三个字段的推文,即与mp3的链接。我如何高效地使用Python 3?如果有更快的方法,请告诉。

+0

有很多方法可以做到这一点。你有什么特别的困难? –

+0

谢谢你的问题。 – Martin

回答

0

我认为你正在寻找的东西是这样的:

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

你可以通过文件的所有行迭代。剥离任何空格,换行符等,然后将其拆分为-以获取作者,书籍和链接的元组。你必须小心分裂的字符(见代码注释)。

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

希望这有助于:)

+0

谢谢你的代码和有用的解释。我尊重你。 – Martin

相关问题