Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改另一个文件中保存的文件的目录。干净整洁。没有混乱_Python_Python 2.7_Directory_Save - Fatal编程技术网

Python 更改另一个文件中保存的文件的目录。干净整洁。没有混乱

Python 更改另一个文件中保存的文件的目录。干净整洁。没有混乱,python,python-2.7,directory,save,Python,Python 2.7,Directory,Save,我已经做了一个注册和登录程序,但程序保存的数据文件与程序文件的目录相同。如何将已保存文件的目录更改为新文件,以使其不会一团糟。这是我的程序(虽然是新手) 导入pickle 尽管如此: RegOrLog=raw_输入(“[注册/登录]:”) 如果RegOrLog不在('reg','register','register','log','login','login',中\ ‘r’、‘l’: 打印“如果您没有帐户,请输入‘注册’” 打印“如果您已经注册,请输入‘登录’” 如果RegOrLog在('re

我已经做了一个注册和登录程序,但程序保存的数据文件与程序文件的目录相同。如何将已保存文件的目录更改为新文件,以使其不会一团糟。这是我的程序(虽然是新手)

导入pickle
尽管如此:
RegOrLog=raw_输入(“[注册/登录]:”)
如果RegOrLog不在('reg','register','register','log','login','login',中\
‘r’、‘l’:
打印“如果您没有帐户,请输入‘注册’”
打印“如果您已经注册,请输入‘登录’”
如果RegOrLog在('reg','register','register','r','register')中:
计数=0
当计数小于1时:
regusrnm=raw_input('输入您想要的登录名:')
regusrnm=regusrnm.lower()
regpswrd=raw_输入('输入您的密码:')
尽管如此:
regage=原始输入('输入您的年龄:')
如果整数(regage)不在范围(1100)内:
打印“请输入适当的值”
其他:
打破
尽管如此:
reggender=raw_输入('说明您的性别:')
如果reggender不在('男','女'):
打印“你是外星人吗?”
其他:
打破
数据={“用户名”:regusrnm,“密码”:regpswrd,“年龄”:regage\
“性别”:reggender}
pickle.dump(数据,打开(regusrnm,“wb”))
RegOrLog='login'
打印“出于安全目的,请登录您的帐户”
打破
如果RegOrLog in('log','login','login','l','login'):
logusrnm=raw_输入('输入您的用户名:')
数据=pickle.load(打开(logusrnm,“rb”))
计数=3
当计数>=1时:
logpswrd=raw_输入('输入密码:')
计数=计数-1
如果logpswrd!=数据[“密码”]:
打印“你有”,计数,“向左尝试”
如果计数=0:
打印“帐户不存在或密码错误”
打印“请注册一个新的”
打破
其他:
打印“欢迎回来”,数据[“用户名”]
打破

您的文件不是“保存在与程序相同的目录中”,而是在执行脚本时保存在当前目录中。将文件存储到其他位置的方法非常简单和明显:只需明确地将您希望保存文件的完整绝对路径传递到
open()

为每个用户创建单独的文件不是一个好主意。使用数据库或单个文件保存用户信息,此问题的任何解决方案都是有漏洞的,但如果您仍想这样做,请执行以下操作:

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
导入pickle,操作系统
user\u folder=“user\u data/”
如果不存在os.path.(用户文件夹):
os.makedirs(用户文件夹)
尽管如此:
RegOrLog=raw_输入(“[注册/登录]:”)
如果RegOrLog不在('reg','register','register','log','login','login',中\
‘r’、‘l’:
打印“如果您没有帐户,请输入‘注册’”
打印“如果您已经注册,请输入‘登录’”
如果RegOrLog在('reg','register','register','r','register')中:
计数=0
当计数小于1时:
regusrnm=raw_input('输入您想要的登录名:')
regusrnm=regusrnm.lower()
regpswrd=raw_输入('输入您的密码:')
尽管如此:
regage=原始输入('输入您的年龄:')
如果整数(regage)不在范围(1100)内:
打印“请输入适当的值”
其他:
打破
尽管如此:
reggender=raw_输入('说明您的性别:')
如果reggender不在('男','女'):
打印“你是外星人吗?”
其他:
打破
数据={“用户名”:regusrnm,“密码”:regpswrd,“年龄”:regage\
“性别”:reggender}
pickle.dump(数据,打开(用户文件夹+regusrnm,“wb”))
RegOrLog='login'
打印“出于安全目的,请登录您的帐户”
打破
如果RegOrLog in('log','login','login','l','login'):
logusrnm=raw_输入('输入您的用户名:')
data=pickle.load(打开(用户文件夹+logusrnm,“rb”))
计数=3
当计数>=1时:
logpswrd=raw_输入('输入密码:')
计数=计数-1
如果logpswrd!=数据[“密码”]:
打印“你有”,计数,“向左尝试”
如果计数=0:
打印“帐户不存在或密码错误”
打印“请注册一个新的”
打破
其他:
打印“欢迎回来”,数据[“用户名”]
打破

你能给我举个如何保存文件的例子吗?很抱歉,我的英语不好。在“只需明确地传递您希望将文件保存到open()中的完整绝对路径”中,您到底不明白什么
f=open(“blah.txt”)
将在当前工作目录(通常是启动脚本时所在的目录)中查找名为“'blah.txt”的文件
f=open(“/home/bigb/blah.txt”)
将在“/home/bigb/”目录中查找名为“blah.txt”的文件。这里没有火箭科学;)噢~现在我明白了。这就是我想要的答案。谢谢你,哈哈。这只是我的大学作业。谢谢分享你的想法
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