Python having problems writing/reading and testing in a correct format

Posted by Ionut on Stack Overflow See other posts from Stack Overflow or by Ionut
Published on 2012-10-06T02:40:09Z Indexed on 2012/10/06 3:37 UTC
Read the original article Hit count: 222

Filed under:

I’m trying to make a program that will do the following:

  • check if auth_file exists
    • if yes -> read file and try to login using data from that file - if data is wrong -> request new data
    • if no -> request some data and then create the file and fill it with requested data

So far:

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

I have the following problems(understanding and applying the correct way):

  • I can't find a correct way of storing the returned data from req_auth() to auth_file in a format that can be read and used in load_auth file

PS: Of course I'm a beginner in Python and I'm sure I have missed some key elements here :(

© Stack Overflow or respective owner

Related posts about python