以下代碼片段是使用Twython的推特機器人的核心。 我想知道我是否可以將讀入的文件合併到列表理解 中,因爲看起來相當複雜,因爲它只是讀取一行項目列表,然後 從中創建另一個多項列表。可以通過列表切片將列表理解結合起來嗎?
我檢查了一下,發現了一些使用 readlines()讀取整個文件的例子,但是也沒有涉及到切片的一個例子。
with open(tweet_datafile,'r') as smstweets:
bigtweet = smstweets.readline().strip()
text_entire = [ bigtweet[i:i+140] for i in range(0,len(bigtweet),140) ]
for line in range(len(text_entire)):
twitter.update_status(status=text_entire[line])
注:
的Python 2.7,Linux操作系統。如果需要的話,Python 3.5安裝&。 。
的ReadLine()條()的使用,因爲我希望能夠讀取任意長度的線 一個文件,並刪除任何EOL和空白(列表中的最後一個項目 最終可能作爲唯一的空間; twitter會拒絕空格狀態更新,並且我還沒有爲此寫任何錯誤處理)。
我只讀取輸入文件的第一行,然後在代碼中將文件寫回 減去該行。我決定這是我的有限技能的最簡單的解決方案,因爲機器人不會24/7運行
我不是程序員,我用一堆示例代碼將它們一起砍掉了我發現在堆棧上發現了一堆 溢出和其他地方。我試圖使用非常簡單的 代碼,而不是依賴Twython之外的第三方庫。生成器和迭代器 顯示爲對我的巫術。
我再定位的重複數據刪除技術,以[split py generator(splitEvery)](// stackoverflow.com/q/1915170)中的每n個項目中的一個生成器/可迭代,因爲它更好地覆蓋了文件的情況。 –
@MartijnPieters然而,這個複製並沒有真正回答OP的問題,這不是「如何將一個序列分割成固定長度的塊」,而是「如何將這個分割與文件中的讀取結合起來」。 –
你不**創建一個元素列表,'bigtweet'只是一個字符串。沒有什麼複雜的。恕我直言,示例代碼已經足夠好了。 –