zoukankan      html  css  js  c++  java
  • 常用模块1

    一 time模块

     1.时间戳时间

      (1)time.time()

      (2)通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

     2.结构化时间

      (1)time.localtime()

    3.格式化时间/字符串时间

      (1)time.strftime()

      (2)struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

    索引(Index)属性(Attribute)值(Values)
    0 tm_year(年) 比如2011
    1 tm_mon(月) 1 - 12
    2 tm_mday(日) 1 - 31
    3 tm_hour(时) 0 - 23
    4 tm_min(分) 0 - 59
    5 tm_sec(秒) 0 - 60
    6 tm_wday(weekday) 0 - 6(0表示周一)
    7 tm_yday(一年中的第几天) 1 - 366
    8 tm_isdst(是否是夏令时) 默认为0

    4.相互转化

    import  time
    s1 = time.localtime(15000000)
    s2 = time.strftime("%Y-%m-%d  %H:%M:%S", s1)
    print(s1)
    print(s2)
    s3 = time.strptime("2018-08-08  08:08:08","%Y-%m-%d  %H:%M:%S")
    s4 = time.mktime(s3)
    print(s3)
    print(s4)
    View Code

     二.sys模块

      (1)sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

      (2)sys.modules

      (3)sys.paltform  返回操作系统平台名称

      (4)sys.exits()          退出程序,正常退出时exit(0),错误退出sys.exit(1)

      (5)sys.argv()          命令行参数List,第一个元素是程序本身路径

     

    三. os模块

      1.和工作目录有关的

        (1)os.getcwd()                获取当前工作目录,即当前python脚本工作的目录路径
        (2)os.chdir("dirname")    改变当前脚本工作目录;相当于shell下cd
        (3)os.curdir                    返回当前目录: ('.')
        (4)os.pardir                    获取当前目录的父目录字符串名:('..')

      2.创建/删除文件夹

        (1) os.mkdir()       创建一级目录

        (2)os.makedirs()    创建多级目录

        (3)os.rmdir()         删除单级目录

        (4)os.removedirs()    删除多级目录,递归向上删除,直到遇见目录中有文件的停止删除
        (5) os.listdir()             列表列出指定目录下的所有文件和子目录

      3.操作系统的差异

        (1)os.stat('path/filename') 获取文件/目录信息

        (2)os.sep 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"

        (3)os.linesep 输出当前平台使用的行终止符,win下为" ",Linux下为" "

        (4)os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:

        (5)os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'

      4.使用python来和操作系统命令交互

        (1)os.system("bash command") 运行shell命令,直接显示

        (2)os.popen("bash command).read() 运行shell命令,获取执行结果

        (3)os.environ 获取系统环境变量

      5.os.path

        (1)os.path.abspath(path) 返回path规范化的绝对路径

        (2)os.path.split(path) 将path分割成目录和文件名二元组返回

        (3)os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素

        (4)os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素

        (5)os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False

        (6)os.path.isabs(path) 如果path是绝对路径,返回True

        (7)os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False

        (8)os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False

        (9)os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

        (10)os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间

        (11)os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

        (12)os.path.getsize(path) 返回path的大小

    a = os.path.abspath("D:python14day 20")
    a1 = os.path.split(a)
    a2 = os.path.dirname(a)
    a3 = os.path.basename(a)
    a4 = os.path.exists(a)
    a5 = os.path.isabs(a)
    a6 = os.path.isfile("D:python14day 20热.py")
    a7 = os.path.isdir("D:python14")
    a8 = os.path.join("D:python14day 20热.py","aaa","fff")
    a9 = os.path.getatime("D:python14day 20热.py")
    a10 = os.path.getmtime("D:python14day 20热.py")
    a11 = os.path.getsize("D:python14day 20hudog.py")
    View Code

    四 .序列化模块

      1 . json 模块

         (1) json.dumps()   序列化     可以进行序列化的有list,dict,str,int

        (2) json.loads()       反序列化

        (3)json.dump()

        (4) json.load()

    英文序列化
    ret = json.dumps(["中国人", "日本鬼子", "老毛子"])
    print(ret)       #["u4e2du56fdu4eba", "u65e5u672cu9b3cu5b50", "u8001u6bdbu5b50"] 序列化时中文变为bytes形式
    ret1 = json.loads(ret)   #ret = json.dumps(["中国人", "日本鬼子", "老毛子"], ensure_ascii=False)  这种形式序列化中文不会变
    print(ret1)
    f = open("qq.py","w")
    json.dump(["中国人", "日本鬼子", "老毛子"], f,)
    f = open("qq.py",)
    ret = json.load(f)
    print(ret)
    import json
    data = {'username':['李华','二愣子'],'sex':'male','age':16}
    json_dic2 = json.dumps(data,sort_keys=True,indent=2,separators=(',',':'),ensure_ascii=False)
    print(json_dic2)    #sort_keys=True  以首字母对可以排序,indent=2缩进2
    中文字符串序列化

      2.pickle模块

        (1)pickle.dumps()    序列化,返回的是bytes类型

           (2) pickle.loads()

         (3) pickle.dump()

         (4) pickle.load()

    import pickle
    ret = pickle.dumps({"1":1,"2":2,"3":3,"4":4})     # 序列化  将list.dict转化为bytes类型
    ret2 = pickle.dumps([1,"wert",132,"t43"])
    print(ret2,type(ret2))
    ret3 = pickle.loads(ret)                            #反序列化  将bytes类型转回list,dict类型
    print(ret3)
    
    f = open("qq.py","wb",)
    pickle.dump({"1":1,"2":2,"3":3,"4":4}, f)  #文件操作要以wb,rb形式写入
    f = open("qq.py","rb")
    ret = pickle.load(f)
    print(ret)
    
    class Student:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
    s = Student("", 18)
    ret = pickle.dumps(s)      #pickle能处理几乎所有的对象
    print(ret)
    ret1 = pickle.loads(ret)
    print(ret1.name,ret1.age)
    View Code

        (5)json与pickle的区别

            1.json只可以对dict,list,int,str等数据类型进行序列化,而pickle可以对任何数据类型进行序列化,还可以处理几乎所有的对象.

            2.json是一种所有编程语言都能识别的一种数据类型. 而pickle只能被python这一种语言识别.

            3.json用于字符串与python中的数据类型间进行转换,而pickle用于python中特有的类型和python中的数据类型进行交换

      3.shelve模块     

       (1)shelve也是python提供给我们的序列化工具,比pickle用起来更简单一些。

       (2)shelve只提供给我们一个open方法,是用key来访问的,使用起来和字典类似。

    import shelve
    f = shelve.open('shelve_file')
    f['key'] = {'int':10, 'float':9.5, 'string':'Sample data'}  #直接对文件句柄操作,就可以存入数据
    f.close()
    
    import shelve
    f1 = shelve.open('shelve_file')
    existing = f1['key']  #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
    f1.close()
    print(existing)
    View Code
  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/hu13/p/9443760.html
Copyright © 2011-2022 走看看