我正在尝试制作一个可以执行以下操作的程序:
- 检查 auth_file 是否存在
- 如果是 -> 读取文件并尝试使用该文件中的数据登录 - 如果数据错误 -> 请求新数据
- 如果没有 -> 请求一些数据,然后创建文件并用请求的数据填充它
至今:
import json
import getpass
import os
import requests
filename = ".auth_data"
auth_file = os.path.realpath(filename)
url = 'http://example.com/api'
headers = {'content-type': 'application/json'}
def load_auth_file():
try:
f = open(auth_file, "r")
auth_data = f.read()
r = requests.get(url, auth=auth_data, headers=headers)
if r.reason == 'OK':
return auth_data
else:
print "Incorrect login..."
req_auth()
except IOError:
f = file(auth_file, "w")
f.write(req_auth())
f.close()
def req_auth():
user = str(raw_input('Username: '))
password = getpass.getpass('Password: ')
auth_data = (user, password)
r = requests.get(url, auth=auth_data, headers=headers)
if r.reason == 'OK':
return user, password
elif r.reason == "FORBIDDEN":
print "Incorrect login information..."
req_auth()
return False
我有以下问题(理解和应用正确的方法):
- 我找不到将返回的数据从 req_auth() 存储到 auth_file 的正确方法,该格式可以在 load_auth 文件中读取和使用
PS:当然,我是 Python 的初学者,我确定我在这里错过了一些关键元素 :(