2017-01-02 51 views
1

不過還挺新的這個東西,所以請多多包涵前:Filter文本與Python啁啾

我有一個Java程序的鏈接擦傷,就像一個魅力。我最近也學會了如何在python中製作一個自動推特機器人,也能夠完美地工作。

現在,這裏是我在哪裏有麻煩......

Java程序中導出的文本文件(沒什麼大不了)中的所有環節,我的Twitter機器人抓住任何行的文本文件,並再次鳴叫他們( ,沒有biggie)。但我想要做的是過濾Twitter的殭屍只鳴叫具有特定關鍵詞的特定鏈接...

這裏是我的Twitter的殭屍

import tweepy, time, sys 

argfile = str(sys.argv[1]) 


CONSUMER_KEY = 'example' 
CONSUMER_SECRET = 'example' 
ACCESS_KEY = 'example' 
ACCESS_SECRET = 'example' 
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 
api = tweepy.API(auth) 

filename=open(argfile,'r') 
f=filename.readlines() 
filename.close() 

for line in f: 
    api.update_status(line) 
    time.sleep(60)#Tweet every 60 seconds 

現在我已經嘗試過多次類似的事情

for line in f: 
    if: 'robot' in line: 
     api.update_status(line) 
     time.sleep(60)#Tweet every 60 seconds 

這似乎沒有工作。我很好奇,如果我不得不使用configparser過濾數據?

+1

您不需要configparser來過濾數據。但是,您的示例有一些語法錯誤,部分取決於縮進,但並非全部。請糾正這一點,通過複製實際代碼'如果'機器人正確'在線'。同時給出你用過濾鏈接得到的輸出,爲什麼要在重寫文件時等待60秒?給出一個輸入數據的樣本。通過更新您的帖子來完成所有這些工作,並在您的帖子中刪除感謝和讚賞線。 – Anthon

+0

你能否檢查你提供的兩個例子*正是*你試圖運行的代碼?既沒有有效的python(在第一個'if'之後沒有縮進行,在第二個'if'之後沒有':')。 – snakecharmerb

+0

我沒有用正確的代碼更新這篇文章,我寫的是Sublime,所以也許它是buggy和messing或者我是通過使用Ctrl K?因爲它完全運行在我的最後,而且我沒有任何過濾器在這個問題上輸出 所有我得到的是一個錯誤,不允許鳴叫,因爲第一行在該文件中已經被推文,這就是我正在測試,看看過濾器是否工作,而他們不是。 – cbos93

回答

0

首先,您必須正確使用if循環語法;

if 'word' in line : api.update_status(line) time.sleep(60)

其次,使它作爲一種「快捷方式」,你可以做這樣的:

if 'word' or 'word' or 'word' in line: 
    api.update_status(line) 
    time.sleep(60) 

PS: - 你可以寫很多的話來過濾,你想