EOFError: закончился ввод, и файл, который я пытаюсь обработать, не пуст - PullRequest
0 голосов
/ 17 июня 2020
import pyautogui
import pickle

username = input("Enter your steam username: ")
pickle_out = open("steam.pickle","wb")
pickle.dump(username, pickle_out)
pickle_out.close


password_input = input("Enter your password: ")
password_test = input("Enter your password again: ")

if password_input == password_test :
    pickle_out = open("steam_password.pickle","wb")
    pickle.dump(password_input, pickle_out)
    pickle_out.close
else:
    print("The passwords don't match.")


def login():
    pyautogui.click(x=1165, y=634)
    pickle_in = open('steam.pickle','rb')
    username = pickle.load(pickle_in)
    pyautogui.typewrite(username)
    pyautogui.click(x=1162, y=669)
    pickle_inn = open('steam_password.pickle','rb')
    password = pickle.load(pickle_inn)
    pyautogui.typewrite(password)


login()


def remember():
    remember_or = input("Do you want to remember your password? (y/n) ")
    if remember_or == 'y':
        pyautogui.click(x=1163, y=697)
        pyautogui.click(x=1185, y=730)


remember()


def get_position():
    position_start = input()
    if position_start == 'm':
        print(pyautogui.position())

Ошибка, которую я получаю:

Traceback (most recent call last):
  File "c:/Users/c/Desktop/Programming/Python/passwordsaver.py", line 32, in <module>
    login()
  File "c:/Users/c/Desktop/Programming/Python/passwordsaver.py", line 28, in login
    password = pickle.load(pickle_inn)
EOFError: Ran out of input

Я проверил, что может означать эта ошибка, и обнаружил, что это может означать, что файл, который я пытаюсь засолить, пуст, но я проверил и он не пустой. Я попытался изменить имена переменных, так как думал, что это как-то связано с кодом. Любая помощь будет оценена по достоинству!

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Рабочий пример:

import pickle

password_input = '123123123'
pickle_out = open("steam_password.pickle","wb")
pickle.dump(password_input, pickle_out)
pickle_out.close()

pickle_inn = open('steam_password.pickle','rb')
password = pickle.load(pickle_inn)

pickle_out.close просто ссылается на функцию, не вызывает ее

И хранить пароль в нем определенно плохая идея. файл рассола. Вы можете сохранить его как md5 ha sh:

import hashlib

password = '123123123'
hashlib.md5(password.encode('utf8')).hexdigest()
0 голосов
/ 17 июня 2020

Вы никогда не закрывали stream.pickle, чтобы избежать этой ошибки, используйте оператор with, который автоматически закрывает файл, когда вы его покидаете:

with open('stream.pickle', 'wb') as file: pickle.dump(username, file)

...