現在tweepyに取り組んでいますが、変数にtweet idを格納し、スクリプトを実行するときにこの値を保持する必要があります。再び。私はファイルとdbを使ってこれを行うことができますが、私は環境変数を使ってそれをやりたいのです。正しい方向に向かってナッジを探しています。スクリプトが再度実行されたときにその値を保持する変数が必要です(Python)
#!/usr/bin/env python
# encoding: utf-8
import tweepy
import time
import random
import os
t=time.time()
#my api keys
consumer_key = "xxx"
consumer_secret = "xxx"
access_key = "xxx"
access_secret = "xxx"
toReply="xxx"
rt=['hello','hi','okay','bye']
#rt=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','you','suck','bruh',':P']
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
ts=api.user_timeline(screen_name=toReply,count=1)
#g=open('id.txt','r')
#x=g.read()
#g.close()
x=os.environ["en"]
print x
l=[]
#print dir(ts)
#print ts.max_id
#print type(ts.max_id)
def unique(y,l):
for i in range(0,len(l)):
if l[i]==y:
return 0
if int(x)!=ts.max_id:
for tweet in ts:
for i in range(0,len(rt)+1):
y=random.choice(rt)
#print y
if(unique(y,l)!=0):
#print("unique")
api.update_status("@" + toReply + " "+y, in_reply_to_status_id = tweet.id)
#print y
l.append(y)
os.environ["en"]=str(ts.max_id)
print os.environ["en"]
'''
f=open('id.txt','w')
f.write(str(ts.max_id))
f.close()
'''
t1=time.time()-t
print t1
環境変数は一方向です:コマンドインタープリタ(または他の実行環境)からプログラムに移動します。それらはプロセスの子孫にも継承されます。しかし、プログラムは親の環境を変更することはできません。 – wallyk
ファイル 'pickle'を使用することをお勧めします –
[Pythonスクリプトの実行間に永続変数をメモリに保持する]可能な複製(http://stackoverflow.com/questions/6687660/keep-persistent-variables-in- memory-between-runs-of-python-script) – iFlo