EOFError: Ran out of input and file im trying to pickle is not empty
EOFError: Ran out of input and file im trying to pickle is not empty
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
我检查了这个错误可能意味着什么,发现它可能意味着我试图 pickle 的文件是空的,但我检查了一下,它不是空的。我尝试更改变量名,因为我认为它与代码有关。任何帮助将不胜感激!
您从未关闭过 stream.pickle
,为避免此类错误,请使用 with
语句,它会在您离开时自动关闭文件:
with open('stream.pickle', 'wb') as file:
pickle.dump(username, file)
工作示例:
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 只引用函数,不要调用它
将密码存储在 pickle 文件中绝对是个坏主意。您可以将其存储为 md5 哈希:
import hashlib
password = '123123123'
hashlib.md5(password.encode('utf8')).hexdigest()
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
我检查了这个错误可能意味着什么,发现它可能意味着我试图 pickle 的文件是空的,但我检查了一下,它不是空的。我尝试更改变量名,因为我认为它与代码有关。任何帮助将不胜感激!
您从未关闭过 stream.pickle
,为避免此类错误,请使用 with
语句,它会在您离开时自动关闭文件:
with open('stream.pickle', 'wb') as file:
pickle.dump(username, file)
工作示例:
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 只引用函数,不要调用它
将密码存储在 pickle 文件中绝对是个坏主意。您可以将其存储为 md5 哈希:
import hashlib
password = '123123123'
hashlib.md5(password.encode('utf8')).hexdigest()