如何使用Python从文件中读取API认证数据?
我在从文件中读取我的API密钥时遇到了“错误的认证”这个问题,具体代码如下:
#!/usr/local/bin/python
import tweepy
#open a file called "keys" with keys and tokens for Twitter separated by newlines
keyFile = open('keys', 'r')
consumer_key = keyFile.readline()
consumer_secret = keyFile.readline()
access_token = keyFile.readline()
access_token_secret = keyFile.readline()
keyFile.close()
print "consumer key: " + consumer_key
print "consumer secret: " + consumer_secret
print "access token: " + access_token
print "access token secret: " + access_token_secret
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
如果我手动设置我的密钥,比如用 consumer_key = "xxx"
这样,它就能正常工作。有没有什么建议,为什么从文件读取时会不行呢?谢谢。
2 个回答
2
keys.txt
文件里有四行内容,分别是 consumer_key
、consumer_secret
、access_token
和 access_token_secret
,每个信息单独占一行。我们首先要用 readlines
方法把 keys.txt
文件里的所有行读出来。为了去掉每行末尾多余的 \n
(换行符)或者其他不需要的字符,我们需要用 .rstrip()
方法。这种把敏感信息放在 keys.txt
文件里的做法是很好的习惯,同时在把项目上传到 GitHub
时,记得把 keys.txt
的名字加到 .gitignore
文件里,这样别人就不会在你上传代码时盗取你的账户信息了。
keys_file = open("keys.txt")
lines = keys_file.readlines()
consumer_key = lines[0].rstrip()
consumer_secret = lines[1].rstrip()
access_token = lines[2].rstrip()
access_token_secret = lines[3].rstrip()
5
原来Python也会把换行符读进来。解决办法就是用rstrip()把那些隐藏的字符去掉:
consumer_key = keyFile.readline().rstrip()