zoukankan      html  css  js  c++  java
  • python 模块

    # -*- coding: utf-8 -*-

    '''
    1.定义:
    模块用来从逻辑上组织python 代码(变量,函数,类,逻辑:实现一个功能),本质就是python 文件

    2. 导入方法
    import module1,module2

    导入所有方法
    import module1*



    import 相当于导入一个文件
    form import 相当于将导入模块的代码复制到当前文件中


    as 关键字
    from module import sayHello as hello
    将sayHello 方法起一个别名‘hello’进行导入,调用直接 hello()


    导入一个其他路径的python 的方法:
    将 想导入的python文件的路径加入到sys.path 中
    比如要导入 c:\test.py
    sys.path.append("c:\")
    os.path.abspath(__file__)

    abspath(file) 获取文件的绝对路径
    __file__ 当前文件
    os.path.dirname(file) 获取file 所在目录


    有一个包,结构如下
    package_test
    __init__.py
    test1.py test1.py 中包含一个test 方法
    我们导入包
    import package_test
    想调用test1中的test方法,可以这样调用:
    修改 __init__.py ,加入 import test1

    3.导入本质(路径搜索和搜索路径)
    导入模块的本质是把python 文件解释一遍
    导入一个包的本质 是执行该包下的__init__.py 文件

    4.模块的分类
    4.1 标准模块 : python 解释器自带的
    4.2 开源模块(第三方模块)
    4.3 自定义模块

    '''

     动态导入模块:

    # -*- coding: utf-8 -*-
    '''
    已知一个模块,比如 lib.aa (aa中有Test 方法), 但是以字符串的形式给出 , 我们可以通过动态导入的方式将这个模块进行导入
    '''
    
    
    #导入 lib.aa
    mod = __import__("lib.aa")
    
    #调用Test
    mod.aa.Test()
    
    
    #建议使用下边的这种方式
    import importlib
    lib = importlib.import_module('lib.aa')
    lib.Test()

    time 模块:

     1 '''
     2 time
     3 
     4 datetime
     5 
     6 
     7 时间有三种表现形式
     8 1. 时间戳 :  就是一秒的形式体现
     9 2. 元组 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=2, tm_hour=17, tm_min=24, tm_sec=28, tm_wday=3, tm_yday=306, tm_isdst=0)
    10 3. 格式化输出  2016-6-1 10:31:22
    11 
    12 所以如果想获取当前时间是一年中的那一天, 可以将当前的时间转换成元组, 之后 .tm_yday 就可以了
    13 '''
    14 import time
    15 import datetime
    16 from test.datetimetester import HOUR
    17 
    18 
    19 # 获取时间戳
    20 time.time()
    21 
    22 #等待几秒
    23 #time.sleep(2)
    24 
    25 
    26 #把时间转换成 元组的形式 ,不传递参数则返回 UTC 的时间
    27 time.gmtime()
    28 
    29 #把时间转换成 元组的形式 , 返回本地的时间
    30 time.localtime()
    31 
    32 
    33 #将元组转换成时间戳
    34 tuple = time.localtime()
    35 time.mktime(tuple)
    36 
    37 
    38 #将元组格式化输出
    39 x = time.localtime()
    40 f = time.strftime("%Y-%m-%d %H:%M:%S",x)
    41 print(f)
    42 
    43 
    44 
    45 #将格式化的字符串转化成元组
    46 t = time.strptime(f, "%Y-%m-%d %H:%M:%S")
    47 print(t)
    48 
    49 
    50 #将  时间戳 转成  格式化字符串  
    51 m1 = time.ctime()
    52 print(m1)
    53 
    54 #将 元组  转成 格式化字符串
    55 m = time.asctime()
    56 print(m)
    57 
    58 
    59 '''
    60 datetime-------------------------
    61 '''
    62 
    63 #获取当前时间
    64 d= datetime.datetime.now()
    65 print("current time is : %s",d)
    66 
    67 
    68 
    69 #获取几天前(或者几天后的)的时间
    70 datetime.datetime.now()+datetime.timedelta(3) #3天后的时间
    71 datetime.datetime.now()+datetime.timedelta(-3) #3天前的时间
    72 h = datetime.datetime.now()+datetime.timedelta(hours = 3) #3小时后的时间
    73 print(h)

    random 模块:

    # -*- coding: utf-8 -*-
    import random
    
    
    #随机1以内的浮点数
    print(random.random())
    #随机取一个区间的浮点数
    print(random.uniform(1,3))
    
    #随机1到3中的整数
    print(random.randint(1,3))
    
    
    print(random.randrange(1,3)) #不包含3
    
    
    
    #从字符串(也可以传入一个列表)中随机获取一个值
    print(random.choice("hello"))
    
    #在一个字符串(也可以是一个列表)中随机获取多个值
    print(random.sample("hello",2))
    
    
    
    #将一个列表打乱
    L1 = [1,2,3,4,5,6,7,8,9]
    random.shuffle(L1)
    print(L1)

    os 模块:

    # -*- coding: utf-8 -*-
    '''
    os模块, 主要是对操作系统功能的调用
    '''
    import os
    
    #获取当前的操作目录
    print(os.getcwd())
    
    #切换目录
    os.chdir(r"C:installEclipse_lunaeclipse") #如果有转译字符,可以加r  os.chdir(r"c:Users")
    print(os.getcwd())
    
    #返回当前目录
    
    print(os.curdir)
    
    #获取当前目录的父目录
    print(os.pardir)
    
    
    
    
    #递归创建目录
    #os.makedirs(r"c:ac")
    
    #不 递归创建目录
    #os.mkdir(r"c:")
    
    
    #递归删除目录
    #os.removedirs(r"c:ac")
    
    
    #删除目录
    #os.rmdir("c:")
    
    
    #列出目录   .代表当前目录
    print(os.listdir("."))
    
    #重命名
    #os.renames("old", "new")
    
    
     
    #获取当前操作系统的分隔符
    print(os.sep)
    
    
    #输出当前系统的终止符
    print(os.linesep)
    
    
    #环境变量中路径分隔符
    print(os.pathsep)
    
    
    
    #获取环境变量
    print(os.environ)
    
    
    
    #当前系统
    print(os.name)
    
    
    
    
    #执行系统命令
    os.system("dir")
    
    
    #分割路径
    print(os.path.split(r"c:user	est"))
    
    
    #获取文件路径
    print(os.path.dirname(r"c:dea.txt"))
    #获取文件名
    print(os.path.basename(r"c:dea.txt"))
    
    
    
    #判断文件是否存在
    print(os.path.exists(r"c:a"))
    
    
    #判断是否是绝对路径
    print(os.path.abspath(r"c:a"))
    
    
    
    #判断是否是一个文件
    print(os.path.isfile(r"c:a.txt"))
    
    
    #判断是否是一个目录
    print(os.path.isdir(r"c: "))
    
    
    
    
    #将多个路径组合返回
    print(os.path.join("c:\","a","b.txt"))

    sys 模块:

    #程序正常退出
    # sys.exit(0)
    
    #获取输入的参数, 比如运行一个脚本 python test.py 1 2 3 , 将会输出 test.py,1,2,3
    sys.argv
    
    #获取python 版本信息
    print(sys.version)

    shutil 模块:

    # -*- coding: utf-8 -*-
    '''
    shutil 模块主要是对文件进行复制等操作的模块
    '''
    import shutil
    
    f1 = open("test")
     
    f2 = open("test2","w") 
    #复制文件
    shutil.copyfileobj(f1, f2)
     
     
     
    #输入文件名直接复制
    shutil.copyfile("test2", "test3")
     
     
    #递归的复制文件
    shutil.copytree(r"c:a", r"c:")
     
     
     
     
    #递归删除
    shutil.rmtree(r"c:")
     
     
    #移动文件
    shutil.move(r"c:a", "c:\")
    
    
    
    
    
    '''
    shutil.make_archive(base_name, format, root_dir, base_dir, verbose, dry_run, owner, group, logger)
    base_name: 压缩包的文件名,也可以是压缩包的路径,只是文件名的时候保存到当前路径,否则保存至指定路径
            aa  => 保存到当前路径
            c:	estaa =>保存到c:	est路径
    format:压缩的种类:zip、tar、bztar、gztar
    root_dir: 要压缩的文件夹路径(默认是当前路径)
    owner:用户,默认是当前用户
    group:组,默认是当前组
    logger:用于记录日志,通常是logging.Logger对象
    
    '''
    shutil.make_archive("test","zip",r"C:")

    shelve 模块:

    '''
    shelve 模块是一个简单的k,v 将内存的数据通过文件持久化的模块,可以持久化任何pickle 可支持的python 数据格式
    
    '''
    import shelve
    
    d = shelve.open("test4")
    
    class test():
        pass
    
    t = "shelve str"
    t2=5
    t3 = test()
    
     #持久化字符串
    d["str"] = t 
    
    #持久化int
    d["int"] = t2 
    
     #持久化类
    d["class"] = t3
    
    d.close()
    
    '''
    读取
    '''
    f = shelve.open("test4")
    str = f.get("str")
    print(str)
     
  • 相关阅读:
    大学生程序猿IT情书“2014爱的告白挑战赛”获奖名单及优秀情书展示系列之
    HDU 4952 Poor Mitsui(贪心)
    linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法
    POJ 1006 Biorhythms(中国剩余定理 )
    java多线程实验 滚动字
    学习鸟哥的Linux私房菜笔记(17)——Linux引导流程
    PCI的imagework已由freeview软件代替
    小强的HTML5移动开发之路(26)—— JavaScript回顾1
    小强的HTML5移动开发之路(25)—— AppCan开发环境
    小强的HTML5移动开发之路(24)—— PhoneGap Android开发环境搭建
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/7808978.html
Copyright © 2011-2022 走看看