• pyrhon学习——常用模块联系


    # 1.回顾文件递归遍历. 默写一遍.
    # 入口在: 当文件是个文件夹的时候
    # 出口在: 文件是一个文件
    import os
    def func(path,n=0):
        path_list = os.listdir(path) #打开文件夹,查看当前目录的文件
        for name in path_list: #遍历path路径下所有文件名
            abs_path = os.path.join(path,name) #将所有文件拼为绝对路径
            if os.path.isdir(abs_path): # 判断文件是否为文件夹
                print('	'*n,name,':') # 如果是文件夹打印文件夹名字
                func(abs_path,n+1) #将当前判断后的绝对路径文件返回path重新执行func,文件层数+1,多一层对一个'	'
            else:
                print('	'*n,name) # 不是文件夹打印文件名
    ret = func('E:python')
    # 2.计算时间差(用户输入起始时间和结束时间. 计算时间差(小时),
    # 例如, 用户输入2018-10-08 12:00:00 2018-10-08 14:30:00 输出2小时
    import time
    stime = time.strptime('2019-8-15 5:00:00','%Y-%m-%d %H:%M:%S')
    etime = time.strptime('2019-8-18 12:32:43','%Y-%m-%d %H:%M:%S')
    sub_time = time.mktime(etime) - time.mktime(stime)
    gm_time = time.gmtime(sub_time)
    print('过去了%d年%d月%d日%d小时%d分%d秒' %(gm_time.tm_year-1970,gm_time.tm_mon-1,
                                          gm_time.tm_mday-1,gm_time.tm_hour,
                                          gm_time.tm_min,gm_time.tm_sec))
    # 3.写一个函数,接收一个参数,如果是文件,就执行这个文件,
    # 如果是文件夹,就执行这个文件夹下的所有的py文件。
    #思路:
    #先判断这个path是文件还是文件夹
    #如果是文件:.py结尾的,执行文件:os.system('python path')
    #如果是文件夹:查看文件夹下的所有内容,如果是文件.py结尾则执行
    import os
    def exec_py(path):
        if os.path.isfile(path) and path.endwith('.py'): #判断路径是否为文件且以py结尾
            os.system('python %s'%path) # py结尾就执行
        elif os.path.isdir(path): # 判断是否是文件夹
            path_list = os.listdir(path)  # 查看文件夹下的所有文件
            for name in path_list:    # 遍历所有文件的文件名
                abs_path = os.path.join(path,name)        # 将文件名拼为绝对路径
                if os.path.isfile(abs_path) and abs_path.endswith('.py'): # 判断绝对路径是否为文件且py结尾
                    os.system('python %s' % abs_path) # 是则执行文件
                elif os.path.isdir(abs_path): # 判断是否为文件夹
                    exec_py(abs_path) #是则调用函数
    exec_py(r'E:pythonToolsday 15')
    # 4.写一个copy函数,接受两个参数,第一个参数是源文件的位置,第二个参数是目标位置,
    # 将源文件copy到目标位置。
    import os
    def copy(path1,path2):
        new_filename = os.path.basename(path1)
        path2 = os.path.join(path2,new_filename)
        with open('path1','rb') as f1,
            open('path2','wb') as f2:
                ret = f1.read()
                f2.write(ret)
    copy(r'E:pythonToolsday 18json_file',r'E:pythonToolsday17')
    # 5.获取某个文件所在目录的上一级目录。
    import os
    ret = os.path.dirname(r'E:pythonTools老男孩day 18json_file')
    re_ret = os.path.dirname(ret)
    print(re_ret)
    # 6.使用os模块创建如下目录结构
    # glance
    # ├── __init__.py
    # ├── api
    # │ ├── __init__.py
    # │ ├── policy.py
    # │ └── versions.py
    # ├── cmd
    # │ ├── __init__.py
    # │ └── manage.py
    # └── db
    # ├── __init__.py
    # └── models.py
    import os
    os.makedirs('glance')
    os.makedirs('glance/api')
    os.makedirs('glance/cmd')
    os.makedirs('glance/db')
    open(r'E:pythonToolsday 18glance\__init__.py','w').close()
    open(r'E:pythonToolsday 18glanceapi\__init__.py','w').close()
    open(r'E:pythonToolsday 18glanceapipolicy.py','w').close()
    open(r'E:pythonToolsday 18glanceapiversions.py','w').close()
    open(r'E:pythonToolsday 18glancecmd\__init__.py','w').close()
    open(r'E:pythonToolsday 18glancecmdmanage.py','w').close()
    open(r'E:pythonToolsday 18glancedb\__init__.py','w').close()
    open(r'E:pythonTools老day 18glancedbmodels.py','w').close()
    # 7.写一个用户注册登陆的程序,
    # 每一个用户的注册都要把用户名和密码用字典的格式写入文件userinfo。
    # 在登陆的时候,再从文件中读取信息进行验证。
    import pickle
    def regist():
        usr = input('用户名:')
        pwd = input('密码:')
        inf = {'usr':usr,'pwd':pwd}
        with open('pickle_file','ab') as f:
            pickle.dump(inf,f)
        print('注册完成')
    def login():
        usr = input('用户名:')
        pwd = input('密码:')
        with open('pickle_file','rb') as f:
            while 1:
                try:
                    inf = pickle.load(f)
                    if inf['usr'] == usr and inf['pwd'] == pwd:
                        print('登录成功')
                        break
                    else:
                        print('账号密码错误')
                except EOFError:
                    print('登陆失败')
                    break
    login()
    # 8.使用random模块,编写一个发红包的函数
    import random
    def send_money(money,num):
        money = money*100
        ret = random.sample(range(1,money),num - 1)
        ret.sort()
        ret.insert(0,0)
        ret.append(money)
        print(ret)
        for i in range(len(ret)-1):
            yield(ret[i+1]-ret[i])/100
    ret_g = send_money(100,10)
    for i in ret_g:
        print(i)
  • 相关阅读:
    SpringCloud Alibaba整合Sentinel
    Jmter入门教程
    惊!!!笔记本外接显示器,显示器界面不能充满全屏
    js-使用attr()方法
    关于JS的assign() 方法
    《转》webpack+vue+vueRouter模块化构建完整项目实例超详细步骤(附截图、代码、入门篇)
    元素水平垂直居中的四种方式(别人文章)
    关于截取字符串substr和substring两者的区别
    JavaScript三种弹出框(alert,confirm和prompt)用法举例
    ::before和::after伪元素的用法
  • 原文地址:https://www.cnblogs.com/bilx/p/11358600.html
Copyright © 2020-2023  润新知