• 模块


    模块:模块其实就是一个Python文件

    一、三种模块

    1、标准模块、标准包
    #python自带的这些模块,直接import就能用的
    import string,random,datetime,os,json
    2、第三方模块,别人写好的一些模块,你要安装之后才可以用
     1、傻瓜式的:pip install pymysql
         (1)没有pip命令的怎么搞:
      1、pycharm里面点python console
      2、找到python安装目录
      3、然后把安装目录下的scripts目录,加入到环境变量里面即可
      ps:环境变量在PATH里面加
        (2)Unknown or unsupported command 'install' 出来这个问提怎么解决
      1、打开 C:strawberryperlin
      2、把这个目录下的pip 都改成其他的名字,这个对其他的没有影响
      2、手动安装
     (1)、whl结尾的安装包
      pip install redis-2.10.6-py2.py3-none-any.whl
     (2)、.tar.gz结尾的安装包
      1、解压这个压缩包
      2、进入到这个解压之后的文件夹里面
      3、在命令行里面运行 python setup.py install

    3、自己写的python文件

    二、导入模块

    1、python导入模块的时候的顺序:

    (1)从当前目录下找需要导入的python文件
    (2)从python的环境变量中找 sys.path 

    2、导入模块的实质:就是这这个python文件从头到尾执行一遍

    #两种方式是一样的
        import test
        nhy.my()
        print( test.name)
    
        from  test import my,name,
        my()
        print(name)

    Random模块:

    import  random,string
    print(string.printable)#代表数字、字母、特殊字符
    print (random.randint(1,10))#随机取整数
    print(round(random.uniform(1,99),2))#随机小数
    print(random.choice([1,2,3,4,5]))#只能随机取1个元素
    print(random.sample(string.printable,5))#随机取N个元素,返回的是list
    #洗牌
    pickts=['A','B',"C","D"]
    random.shuffle(pickts)#只能传list
    print(pickts)
    
    #结果:

     OS模块:

    1、常用的OS模块方法:

        os.listdir('e:\')  #列出目录下所有的文件和文件夹
        os.remove()         #删除文件
        os.rename(old,new)  #重命名
        print(os.sep)#当前操作系统的路径分隔符 #
        # res = os.system('ipconfig')  #执行操作系统命令的,但是获取不到结果
        #res = os.popen('ipconfig').read()  #可以获取到命令执行的结果
        # print(os.path.abspath(__file__))#获取绝对路径
        #print(os.path.dirname("e:\syz\ly-code"))#获取父目录,获取它的上一级目录
        # print(os.path.exists(r"E:syzly-codeday6"))   #判断文件或者目录是否存在
        print(os.path.isfile("xiaohei.py"))
        #判断是否是一个文件,1、文件要存在2、必须是一个文件
        print(os.path.isdir("e:\syz1"))#是否是一个路径,目录是否存在
        size = os.path.getsize('x.py') #获取文件的大小
        os.path.join("root",'hehe','mysql','a.sql')  #拼接路径
        for abs_path,dir,file in os.walk(r'e:
    hy'):
            print(abs_path,dir,file)
            # abs_path 当前循环的绝对路径
            # dir 目录下面所有的文件夹 [ ]
            #  file 目录下面的所有文件  []

    其他方法:

    import os
    #对操作系统的一些操作
    # print(os.getcwd())#取当前工作目录
    # os.chmod("x.py",2)#给文件/目录加权限,对Windows的下面不好使
    # 1  执行
    # 2 写
    # 4 读
    # #chmod
    # print(os.chdir("../day5"))#更改当前目录
    # print(os.getcwd())
    #
    # print(os.makedirs("nhy/python"))#递归创建文件夹,父目录不存在时创建父目录
    # print(os.mkdir("zll/huangrong"))#创建文件夹
    #makedirs 创建文件夹的时候,如果父目录不存在会自动帮你创建父目录
    # print(os.removedirs("nhy/python"))#递归删除空目录
    # print(os.rmdir("test2"))#删除指定的文件夹
    #只能删除空目录
    # os.remove("test2")#只能删除文件
    # os.rmdir('test2') #只能删文件夹
    # print(os.listdir('e:\'))#列出一个目录下的所有文件
    # os.rename("test","test1")#重命名
    # print(os.stat("x.py"))#获取文件信息
    print(os.sep)#当前操作系统的路径分隔符 #
    # day5+os.sep+x.py
    # print(os.linesep)#当前操作系统的换行符
    # 
      
    
    # print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
    # print(os.environ)#当前系统的环境变量
    # print(os.name)#当前系统名称  Windows系统都是nt linux都是posix
    # res = os.system('ipconfig')  #执行操作系统命令的,但是获取不到结果
    #res = os.popen('ipconfig').read()  #可以获取到命令执行的结果
    # __file__ #获取到当前文件的绝对路径
    # print(os.path.abspath(__file__))#获取绝对路径
    # print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名
    
    # print(os.path.dirname("e:\syz\ly-code"))#获取父目录,获取它的上一级目录
    # print(os.path.basename("e:\syz\ly-code\a.txt"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
    # print(os.path.exists(r"E:syzly-codeday6"))#目录/文件是否存在
    # print(os.path.isabs("../day5"))#判断是否是绝对路径
    # print(os.path.isfile("xiaohei.py"))
    #判断是否是一个文件,1、文件要存在2、必须是一个文件
    # print(os.path.isdir("e:\syz1"))#是否是一个路径,目录是否存在
    size = os.path.getsize('x.py') #获取文件的大小
    #不能超过2m
    # print(size)
    # print(os.path.join("root",'hehe','mysql','a.sql'))#拼接成一个路径
    # for abs_path,dir,file in os.walk(r'E:syzly-codeday6'): #获取目录下内容  os.listdir()
    #     #
    #     print(abs_path,dir,file)
        # abs_path 当前循环的绝对路径
        # dir 目录下面所有的文件夹 [ ]
        #  file 目录下面的所有文件  []

    小练习:

    # 把双数日期的日志,里面给随便写点东西。
    # 1、获取到log目录下面的所有文件 os.walk()
    # 2、根据文件名来判断,是否是双数日期 ,分割字符串,取到日期
    # 3、12%2==0
    # 4、打开这个文件 open()
    import os,datetime
    for abs_path,dir,file in os.walk(r'E:自己的文件夹自动化day6logs'):
        for f in file:
            day = f.split('.')[0].split('-')[-1]
            if int(day)%2==0:
                file_name = os.path.join(abs_path,f)#拼接绝对路径
                open(file_name,'a+',encoding='utf-8').write('写东西')#

    时间模块:

    import time
    #时间戳  从unix 元年到现在过了多少秒
    #格式化好的时间
    print(time.time())#1525268607.2107282
    #time.sleep(1)#停止多少秒时间
    print(time.strftime('%Y-%m-%d %H:%M:%S'))#2018-05-02 21:43:27
    #先转成时间元组
    print(time.gmtime())#默认取得是标准时区的时间
    ## time.struct_time(tm_year=2018, tm_mon=5, tm_mday=2, tm_hour=13, tm_min=43, tm_sec=27, tm_wday=2, tm_yday=122, tm_isdst=0)
    print(time.localtime())#默认取得是当前时区的时间
    #time.struct_time(tm_year=2018, tm_mon=5, tm_mday=2, tm_hour=21, tm_min=43, tm_sec=27, tm_wday=2, tm_yday=122, tm_isdst=0)
    s=time.localtime(1514198608)
    print(s)#time.struct_time(tm_year=2017, tm_mon=12, tm_mday=25, tm_hour=18, tm_min=43, tm_sec=28, tm_wday=0, tm_yday=359, tm_isdst=0)

    模块练习:

    def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
        if timestamp:
            time_tuple=time.localtime(timestamp)
            res=time.strftime(format,time_tuple)
        else:
            res=time.strftime(format)#默认取当前时间
        return res
    print(timestamp_to_fomat())#2018-05-02 22:00:33
    #print(timestamp_to_fomat('2018-4-21 16:20:20'))
    #2018-4-21
    tp=time.strptime('2018-04-21','%Y-%m-%d')
    print(tp)#把格式化好的时间转成时间元组time.struct_time(tm_year=2018, tm_mon=4, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=111, tm_isdst=-1)
    print(time.mktime(tp))#把元组转成时间戳1524240000.0
    
    
    def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):
        if str:#如果传了时间的话
            tp=time.strptime(str,format)#转成时间元组
            res=time.mktime(tp)#在转成时间戳
        else:
            res=time.time()#默认取当前的时间戳
        return  int(res)
    strToTimestamp()
    print(strToTimestamp())#1525269681
    print(strToTimestamp('2018421162345'))#1524299025
    
    import datetime
    print(datetime.datetime.today())#2018-05-02 22:01:21.841973
    print(datetime.date.today())#2018-05-02获取今天日期
    res=datetime.date.today()+datetime.timedelta(days=-5)#2018-04-27前五日日期
    print(res)#2018-04-27前五日日期
    res=datetime.date.today()+datetime.timedelta(days=5)#后五天日期2018-05-07
    print(res)
    res=datetime.date.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=5)
    print(res)#2018-06-07
    print(res.strftime('%Y-%m-%d'))#2018-06-07

    制作带有时间的日志文件:

    import os,datetime
    dirs = ['tomcat','nginx','apache','python','app','android','ios']
    os.chdir(r'E:自己的文件夹自动化day6logs')
    base_path = r'E:自己的文件夹自动化day6logs'
    for d in dirs:
        p = os.path.join(base_path,d)
        os.mkdir(p)
        os.chdir(p)
        for i in range(1,10):
            t = datetime.date.today()+datetime.timedelta(-i)
            name = '%s_%s.log'%(d,t)
            open(name,'w')

     sys模块:

    #3、操作数据库
    import sys
    # print(sys.platform)  #判断操作系统
    #   #python的环境变量
    # sys.path.append(r'E:syzly-codeday5')
    # sys.path.insert(0,r'E:syzly-codeday5')
    # print(sys.path)
    print(sys.argv)  #用来获取命令行里面运行python文件的时候传入的参数
    sys.argv:
    import sys
    import os
    command = sys.argv
    print(command)
    if len(command)>1:
        cmd1 = command[1]
        if cmd1=='--help':
            print('这个是帮助文档'
                  '这个python文件是用来说明sys.argv的作用')
        elif cmd1=='os':
            print('当前的操作系统是%s'%sys.platform)
        else:
            print('输入命令有误')
    else:
        print('运行python的时候要传入一个参数'
              'e.g '
              'python xx.py install ')
  • 相关阅读:
    android游戏开发框架libgdx的使用(十二)—TiledMap地图的使用
    android游戏开发框架libgdx的使用(十一)—Skin和UI配置文件的使用
    子句判断、启动强度和去模糊化AForge.NET框架的使用(三)
    分享从网上收集的一些游戏资源,以RPG类为主
    android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度
    android游戏开发框架libgdx的使用(十三)—TiledMap中的角色和角色移动
    Ajax实现评论的顶和踩功能
    Jelastic支持java的PaaS
    真心好用的VS扩展NuGet
    分享几篇文章(PDF版)
  • 原文地址:https://www.cnblogs.com/hwtfamily/p/8835960.html
Copyright © 2020-2023  润新知