2015-09-11 49 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

相關問題