Twython - 在文本文件中保存推文ID

时间:2018-03-08 21:58:13

标签: python variables twitter save twython

我对Python很新,但到目前为止一直很喜欢它。我一直在尝试使用Twython编写代码,该代码将所有与我的搜索查询匹配的推文的推文ID保存为文件中的变量。

我发现我可以使用以下代码打印与我的搜索查询相关的所有ID:

import sys
from twython import Twython

APP_KEY='XXXXXXXX'
APP_SECRET='XXXXXXXX'
OAUTH_TOKEN='XXXXXXXX'
OAUTH_TOKEN_SECRET='XXXXXXXX'

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

I = 12345678910

result = twitter.search(q='WhateverImLooking4', since_id=str(I), count=100)


for item in result['statuses']:
       print(item['id_str'].encode('ascii', 'ignore'))

现在,当我将最后两行更改为此时:

for item in result['statuses']:    
    f = open('Results.txt','w')
    f.write(item['id_str'].encode('ascii', 'ignore'))
    f.close()

它只会将最小的ID号保存到文本文件中。我希望能够将所有结果保存到文件中,理想情况下是可以在另一个python代码中使用的变量。

希望这一切都有意义!

谢谢!

2 个答案:

答案 0 :(得分:0)

这是因为每次执行for循环时都要打开文件并写入以前的ID。

尝试在for循环之前打开文件:

f = open('Results.txt','w')
for item in result['statuses']:    
    f.write(item['id_str'].encode('ascii', 'ignore') + "\n")

f.close()

答案 1 :(得分:0)

在Matt Salzman的帮助下,答案已经实现。

f = open('Results.py', 'w')
i = 1
for item in result['statuses']: 
    f.write("x" + str(i) + " = " + item['id_str'].encode('ascii', 'ignore') + "\n")
    i = i + 1
f.close()   

这将在循环之前打开文件,防止每个结果覆盖另一个& " \ n"逐行分解结果。变量" i"用于在每次为每个结果运行循环时实现不同的变量(即x1,x2,x3 ...... xn)。

谢谢!