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

Twython - Saving Tweet IDs in a Text File

我是 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 代码中使用。

希望这一切都有意义!

谢谢!!

这是因为您每次执行 for 循环时都会打开文件并覆盖之前的 ID。

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

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

f.close()

在 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()   

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

谢谢!