我制作了一堆有效的代码,其中它们的密钥和秘密在代码中声明如下:
key = 'ewjewej2j020e2'
secret = 'dw8d8d8ddh8h8hfehf0fh'
然后做我的生意和工作。但是,如果我将密钥和机密放在由换行符分隔的两行外部文件中并加载它:
file = os.path.join(os.path.dirname(__file__), '../keys')
f = open(file, 'r')
key = f.read()
secret = f.read()
f.close()
我收到一个身份验证错误,因为没有提供令牌,因为我确定密钥和密钥的编码发生了可疑的事情。
好的,如果 Python3 中的所有字符串都是 Unicode,那么为什么从文件加载脚本不起作用而代码内部声明不起作用?
read()
将读取整个文件。尝试使用readline()
.
with open('keys', 'r') as f:
key = f.readline().rstrip()
secret = f.readline().rstrip()
print(key)
print(secret)
# ewjewej2j020e2
# dw8d8d8ddh8h8hfehf0fh
或拆分读取:
with open('keys', 'r') as f:
key, secret = f.read().split()
print(key)
print(secret)
# ewjewej2j020e2
# dw8d8d8ddh8h8hfehf0fh
with open('keys', 'r') as f:
key, secret = map(str.rstrip, f)
print(key)
print(secret)
# ewjewej2j020e2
# dw8d8d8ddh8h8hfehf0fh