如何使用Python从文件中读取API认证数据?

1 投票
2 回答
5656 浏览
提问于 2025-04-18 10:55

我在从文件中读取我的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_keyconsumer_secretaccess_tokenaccess_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()

撰写回答