簡體   English   中英

可以將讀取的文件與列表切片一起組合在列表理解中嗎?

[英]Can a file read be combined in a list comprehension with list slicing?

以下代碼片段是使用Twython的Twitter機器人的核心。 我想知道是否可以將讀取的文件合並到列表推導中,因為將行作為一個單項列表讀入只是為了從中創建另一個多項列表似乎有些費解。

我檢查了一下,找到了一些示例,例如使用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()。strip()是因為我希望能夠讀取具有任意長度的行的文件並刪除任何EOL和空格(列表的最后一項只能以空格結尾; twitter將拒絕狀態更新空格,而我尚未為此編寫任何錯誤處理)。

我只讀取輸入文件的第一行,然后在代碼中的后面減去該行再寫回該文件。 我認為這是我有限的技能最簡單的解決方案,因為該機器人無法全天候運行24/7

我不是程序員,我使用了在Stack Overflow和其他地方發現的示例代碼片段來破解這些代碼。 我正在嘗試使用非常簡單的代碼,而不依賴Twython之外的第三方庫。 生成器和迭代器對我來說似乎是法術。

好吧,也許只是一個很小的更改-不必將列表分配給變量或遍歷索引,可以直接遍歷列表:

with open(tweet_datafile,'r') as smstweets:
    bigtweet = smstweets.readline().strip() 
for line in ( bigtweet[i:i+140] for i in range(0,len(bigtweet),140) ):
    twitter.update_status(status=line)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM