在另一个文件中更改保存文件的目录。干净整洁。不脏乱
Change directory of the saved file inside another file. Clean and neat. No mess
我做过注册和登录的程序,但是程序保存的数据文件和程序文件在同一个目录.如何将保存文件的目录更改为新文件,以免乱七八糟。这是我的程序(虽然是新手)。
import pickle
while True:
RegOrLog = raw_input('[Register/Login]:')
if RegOrLog not in ('reg', 'register', 'REGISTER','log', 'login', 'LOGIN',\
'r','l'):
print "Please enter 'register' if you dont have account"
print "Please enter 'login' if you already registered"
if RegOrLog in ('reg', 'register', 'REGISTER','r','Register'):
count = 0
while count < 1:
regusrnm = raw_input('Enter your desire login name:')
regusrnm = regusrnm.lower()
regpswrd = raw_input('Enter your password:')
while True:
regage = raw_input('Enter your age:')
if int(regage) not in range(1, 100):
print 'please enter apropriate value'
else:
break
while True:
reggender = raw_input('State your gender:')
if reggender not in ('male', 'female'):
print 'Are you an alien?'
else:
break
data = {"username": regusrnm, "password": regpswrd, "age": regage,\
"gender": reggender}
pickle.dump( data, open( regusrnm, "wb" ) )
RegOrLog = 'login'
print 'Please login to your account for security purpose'
break
if RegOrLog in ('log', 'login', 'LOGIN','l','Login'):
logusrnm = raw_input('Enter your username:')
data = pickle.load( open( logusrnm, "rb" ) )
count = 3
while count >= 1:
logpswrd = raw_input('Enter your password:')
count = count - 1
if logpswrd != data["password"]:
print "You have",count, "attempt left"
if count == 0:
print "The account doesn't exist or wrong password"
print 'Please register a new one'
break
else:
print 'Welcome Back',data["username"]
break
您的文件未保存 "in the same directory as the program",它保存在执行脚本时的当前目录中。将文件存储在其他地方的方法非常简单明了:只需将您希望文件保存到的完整绝对路径显式传递到 open()
.
为每个用户创建一个单独的文件不是一个好主意。使用数据库或单个文件来保存用户信息,这个问题的任何解决方案都将是 hacky,但如果你仍然想这样做,不管你在做什么,做这样的事情:
import pickle, os
user_folder = "user_data/"
if not os.path.exists(user_folder):
os.makedirs(user_folder)
while True:
RegOrLog = raw_input('[Register/Login]:')
if RegOrLog not in ('reg', 'register', 'REGISTER','log', 'login', 'LOGIN',\
'r','l'):
print "Please enter 'register' if you dont have account"
print "Please enter 'login' if you already registered"
if RegOrLog in ('reg', 'register', 'REGISTER','r','Register'):
count = 0
while count < 1:
regusrnm = raw_input('Enter your desire login name:')
regusrnm = regusrnm.lower()
regpswrd = raw_input('Enter your password:')
while True:
regage = raw_input('Enter your age:')
if int(regage) not in range(1, 100):
print 'please enter apropriate value'
else:
break
while True:
reggender = raw_input('State your gender:')
if reggender not in ('male', 'female'):
print 'Are you an alien?'
else:
break
data = {"username": regusrnm, "password": regpswrd, "age": regage,\
"gender": reggender}
pickle.dump( data, open( user_folder + regusrnm, "wb" ) )
RegOrLog = 'login'
print 'Please login to your account for security purpose'
break
if RegOrLog in ('log', 'login', 'LOGIN','l','Login'):
logusrnm = raw_input('Enter your username:')
data = pickle.load( open( user_folder + logusrnm, "rb" ) )
count = 3
while count >= 1:
logpswrd = raw_input('Enter your password:')
count = count - 1
if logpswrd != data["password"]:
print "You have",count, "attempt left"
if count == 0:
print "The account doesn't exist or wrong password"
print 'Please register a new one'
break
else:
print 'Welcome Back',data["username"]
break
我做过注册和登录的程序,但是程序保存的数据文件和程序文件在同一个目录.如何将保存文件的目录更改为新文件,以免乱七八糟。这是我的程序(虽然是新手)。
import pickle
while True:
RegOrLog = raw_input('[Register/Login]:')
if RegOrLog not in ('reg', 'register', 'REGISTER','log', 'login', 'LOGIN',\
'r','l'):
print "Please enter 'register' if you dont have account"
print "Please enter 'login' if you already registered"
if RegOrLog in ('reg', 'register', 'REGISTER','r','Register'):
count = 0
while count < 1:
regusrnm = raw_input('Enter your desire login name:')
regusrnm = regusrnm.lower()
regpswrd = raw_input('Enter your password:')
while True:
regage = raw_input('Enter your age:')
if int(regage) not in range(1, 100):
print 'please enter apropriate value'
else:
break
while True:
reggender = raw_input('State your gender:')
if reggender not in ('male', 'female'):
print 'Are you an alien?'
else:
break
data = {"username": regusrnm, "password": regpswrd, "age": regage,\
"gender": reggender}
pickle.dump( data, open( regusrnm, "wb" ) )
RegOrLog = 'login'
print 'Please login to your account for security purpose'
break
if RegOrLog in ('log', 'login', 'LOGIN','l','Login'):
logusrnm = raw_input('Enter your username:')
data = pickle.load( open( logusrnm, "rb" ) )
count = 3
while count >= 1:
logpswrd = raw_input('Enter your password:')
count = count - 1
if logpswrd != data["password"]:
print "You have",count, "attempt left"
if count == 0:
print "The account doesn't exist or wrong password"
print 'Please register a new one'
break
else:
print 'Welcome Back',data["username"]
break
您的文件未保存 "in the same directory as the program",它保存在执行脚本时的当前目录中。将文件存储在其他地方的方法非常简单明了:只需将您希望文件保存到的完整绝对路径显式传递到 open()
.
为每个用户创建一个单独的文件不是一个好主意。使用数据库或单个文件来保存用户信息,这个问题的任何解决方案都将是 hacky,但如果你仍然想这样做,不管你在做什么,做这样的事情:
import pickle, os
user_folder = "user_data/"
if not os.path.exists(user_folder):
os.makedirs(user_folder)
while True:
RegOrLog = raw_input('[Register/Login]:')
if RegOrLog not in ('reg', 'register', 'REGISTER','log', 'login', 'LOGIN',\
'r','l'):
print "Please enter 'register' if you dont have account"
print "Please enter 'login' if you already registered"
if RegOrLog in ('reg', 'register', 'REGISTER','r','Register'):
count = 0
while count < 1:
regusrnm = raw_input('Enter your desire login name:')
regusrnm = regusrnm.lower()
regpswrd = raw_input('Enter your password:')
while True:
regage = raw_input('Enter your age:')
if int(regage) not in range(1, 100):
print 'please enter apropriate value'
else:
break
while True:
reggender = raw_input('State your gender:')
if reggender not in ('male', 'female'):
print 'Are you an alien?'
else:
break
data = {"username": regusrnm, "password": regpswrd, "age": regage,\
"gender": reggender}
pickle.dump( data, open( user_folder + regusrnm, "wb" ) )
RegOrLog = 'login'
print 'Please login to your account for security purpose'
break
if RegOrLog in ('log', 'login', 'LOGIN','l','Login'):
logusrnm = raw_input('Enter your username:')
data = pickle.load( open( user_folder + logusrnm, "rb" ) )
count = 3
while count >= 1:
logpswrd = raw_input('Enter your password:')
count = count - 1
if logpswrd != data["password"]:
print "You have",count, "attempt left"
if count == 0:
print "The account doesn't exist or wrong password"
print 'Please register a new one'
break
else:
print 'Welcome Back',data["username"]
break