我对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代码中使用的变量。
希望这一切都有意义!
谢谢!
答案 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)。
谢谢!