输入打开文件

import fnmatch, os
import re

yy = input('')
def edd(user_name):
    def allFiles(root, patterns = '*', single_level = False, yield_folders = False):
        patterns = patterns.split(';')
        for path, subdirs, files in os.walk(root):
            if yield_folders:
               files.extend(subdirs)
            files.sort()
            for name in files:
                for pattern in patterns:
                    if fnmatch.fnmatch(name, pattern):
                        yield os.path.join(path, name)
                        break
            if single_level:
                break
    for name in allFiles('D:\E\semantic\zzzz', single_level = True):
        w = re.findall(r'\\([\w]+)\.txt',name)
        for i in w:
            if user_name == i:
                return i
rr = edd(yy)
print(rr)
f = open('D:\E\semantic\zzzz/%s.txt'%rr,'r')
print(f.read())

  

 pickle 版本购物车

import fnmatch, os
import re
import pickle

#写入注册信息
def inmation(user,pwd,phone,balance=0):
    name_user = {'name':user,'pwd':pwd,'phone':phone,'balance':balance}
    f = open('D:\E\semantic\zzzz/%s.txt'%user,'ab+')
    f.write(pickle.dumps(name_user))

#验证账号,在就返回True 不再返回False
def edd(user_name):
    def allFiles(root, patterns = '*', single_level = False, yield_folders = False):
        patterns = patterns.split(';')
        for path, subdirs, files in os.walk(root):
            if yield_folders:
               files.extend(subdirs)
            files.sort()
            for name in files:
                for pattern in patterns:
                    if fnmatch.fnmatch(name, pattern):
                        yield os.path.join(path, name)
                        break
            if single_level:
                break
    for name in allFiles('D:\E\semantic\zzzz', single_level = True):
        w = re.findall(r'\\([\w]+)\.txt',name)
        for i in w:
            if user_name == i:
                # f = open('D:\E\semantic\zzzz/%s.txt'%user_name,'r')
                # t = f.read()
                return True
    return False

#验证账号密码
def user_pwd(user,pwd):
    f = open('D:\E\semantic\zzzz/%s.txt'%user,'rb')
    r = pickle.loads(f.read())
    print(r['name'])
    if r['name'] == user and r['pwd'] == pwd :
        return True
    return False

#修改密码
def pwd_new(user,pwd,):
    f = open('D:\E\semantic\zzzz/%s.txt'%user,'rb+')
    r = pickle.loads(f.read())
    print(r['name'])
    if r['name'] == user and r['pwd'] == pwd :
        while True:
            inp_new1 = input('输入新密码')
            inp_new2 = input('输入新密码')
            if inp_new1 == inp_new2:
                r['pwd'] = inp_new2
                filename = 'D:\E\semantic\zzzz/%s.txt'%user
                f.close()
                os.remove(filename)
                f = open('D:\E\semantic\zzzz/%s.txt'%user,'ab+')
                f.write(pickle.dumps(r))
                return True
    return False

#主
def sgin():
    inp_1 = input('*******************************\n登录请按1,注册请按2,修改密码3\n*******************************\n')

    #账户登录
    if inp_1 == '1':
        while True:
            inp_user = input('请输入登录账号:')
            if edd(inp_user):
                print('账号可用')
            else:
                print('账户信息不存在')
                continue
            inp_pwd = input('请输入登录密码:')
            if user_pwd(inp_user,inp_pwd):
                print('恭喜登录成功')
                break
            else:
                print('密码输入错误')
    #账户注册
    elif inp_1 == '2':
        while True:
            inp_user = input('请输入注册登录账号:')
            user_new = edd(inp_user)
            if user_new:
                print('账号已经存在')
                continue
            inp_phone = input('请输入手机号号:')
            inp_pwd = input('请输入注册密码:')
            inmation(inp_user,inp_pwd,inp_phone)
            print('恭喜注册成功')
            sgin()
            break

    elif inp_1 == '3':
        while True:
            inp_user = input('请输入登录账号:')
            if edd(inp_user):
                print('账号可用')
            else:
                print('账户信息不存在')
                continue
            inp_pwd = input('请输入登录密码:')
            if pwd_new(inp_user,inp_pwd):
                print('恭喜修改成功')
                sgin()
                break
            else:
                print('密码输入错误')
sgin()

  

posted @ 2016-12-25 20:36  200ML  阅读(174)  评论(0编辑  收藏  举报