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

    =========================time模块===============================
    作用:打印日期,做时间转换。

    import time
    import datetime

    #示例一:sleep()
    print("start to sleep.....")
    time.sleep(5) #让程序停止5秒
    print("wake up...")

    #示例二:时间戳
    print(time.time()) #返回当前系统时间戳

    #示例三:输出当前系统时间
    print(time.ctime()) #输出当前系统时间

    #示例四:将时间戳转为字符串格式
    print(time.ctime(time.time()-86400)) #将时间戳转为字符串格式

    #示例五:将时间戳转换成struct_time格式
    print(time.gmtime(time.time()-86400))

    #示例六:将时间戳转换成struct_time格式,但返回本地时间
    print(time.localtime(time.time()-86400))

    #示例七:与time.localtime()功能相反,将struct_time格式转换成时间戳格式
    print(time.mktime(time.localtime()))

    #示例八:将struct_time格式转换成指定的字符串格式
    print(time.srtftime("%Y-%m-%d %H:%M:%S", time.gmtime()))

    #示例九:将字符串格式转换成struct_time格式
    print(time.strptime("2019-10-01", "%Y-%m-%d"))

     

    ========================datetime模块===========================
    #示例一:输出今天的日期
    datetime.date.today()

    #示例二:将时间戳转成日期格式
    datetime.date.fromtimestamp(time.time()-86400)

    #示例三:
    current_time = datetime.datetime.now()
    print(current_time) #输出%Y-%m-%d %H:%M:%S格式,输出结果:2019-10-04 16:35:44.065723
    print(current_time.timetuple()) #返回struct_time格式
    print(current_time.replace(2019,10,04)) #输出%Y-%m-%d %H:%M:%S格式,返回当前时间,但指定的值将被替换。

    #示例四:将字符串转换成日期格式
    str_to_date = datetime.datetime.strptime("04/10/19 16:25", "%d/%m/%y %H:%M")

    #示例五:比现在加10天
    new_date = datetime.datetime.now() + datetime.timedelta(days = 10)

    #示例六:比现在减10天
    new_date = datetime.datetime.now() + datetime.timedelta(days = -10)

    #示例七:比现在减10小时
    new_date = datetime.datetime.now() + datetime.timedelta(hours = 10)

    #示例八:比现在加120秒
    new _date = datetime.datetime.now() + datetime.timedelta(seconds = 120)

    =========================sys模块==============================
    import os
    import sys

    #示例一:命令行参数list,第一个元素是程序本身路径
    sys.argv

    #示例二:退出程序,正常退出时exit(0)
    sys.exit(n)

    #示例三:获取int最大值。
    sys.maxint

    #示例五:返回模块的搜索路径,初始化使用PYTHONPATH环境变量的值
    sys.path

    #示例六:返回操作系统平台名称
    sys.platform

    #示例七:向屏幕上显示信息
    sys.stdout.write('hello')

    #示例八:读取屏幕的输入
    val = sys.stdin.readline()[:-1]

     

    练习一:读写用户的输入,根据用户输入创建一个相应的目录。

    1 import sys, os
    2 dirname = input("请输入你的目录名称: ")
    3 ret = os.mkdir(dirname)
    View Code

    练习二:模拟进度条的显示

    1 import sys, time
    2 
    3 for i in range(31):
    4     sys.stdout.write('
    ') #每一次清空原行
    5     sys.stdout.write("%s%% | %s" % (int(i/30*100), int(i/30*100) * '#'))
    6     sys.stdout.flush() #强制刷新到屏幕
    7     time.sleep(0.2) #控制输出的速度
    View Code

    进度条显示的结果:

    ===========================os模块==============================
    示例七:获取当前工作目录,即当前python脚本工作的目录路径
    os.getcwd()

    #示例八:改变当前脚本工作目录,相当于shell下cd
    os.chdir()

    #示例九:返回当前目录('.')
    os.curdir()

    #示例十:获取当前目录的父目录字符串名('..')
    os.pardir()

    #示例十一:可生成多层递归目录
    os.makedirs('dirname1/dirname2')

    #示例十二:若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.removedirs('dirname1')

    #示例十三:生成单级目录,相当于shell下mkdir
    os.mkdir('dirname1')

    #示例十四:删除单级目录,若目录不为空则无法删除,报错;相当于shell下rmdir
    os.rmdir('dirname')

    #示例十五:列出指定目录下的所有文件和子目录,包含隐藏文件,并以列表的方式打印
    os.listdir('dirname')

    #示例十六:删除一个文件
    os.remove()

    #示例十七:重命名文件或目录
    os.rename("oldname", "newname")

    #示例十八:获取文件或目录信息
    os.stat('path/filename')

    #示例十九:输出操作系统特定的路径分隔符,windows下为"\",Linux下为"/"
    os.sep

    #示例二十:输出当前平台使用的行终止符,windows下为" ",Linux下为" "
    os.linesep

    #示例二十一:输出用于分割文件路径的字符串
    os.pathsep

    #示例二十二:输出字符串指示当前使用平台,windows下为"nt",Linux下为"posix"
    os.name

    #示例二十三:运行shell命令,直接显示
    os.system("bash command")

    #示例二十四:获取系统环境变量
    os.environ

    #示例二十五:返回path规范化的绝对路径
    os.path.abspath(path)

     

    ============================pickle模块--序列化===============================

    pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。

    pickle模块只能在Python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,

    pickle序列化后的数据,可读性差,人一般无法识别。

    pickle.dump(obj, file[, protocol])
      序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。

    pickle.dumps(obj):以字节对象形式返回封装的对象,不需要写入文件中

    pickle.load(file)
      反序列化对象。将文件中的数据解析为一个Python对象。

    其中要注意的是,在load(file)的时候,要让python能够找到类的定义,否则会报错。

    pickle.loads(bytes_object): 从字节对象中读取被封装的对象,并返回。


    pickle模块可能出现三种异常:

    1. PickleError:封装和拆封时出现的异常类,继承自Exception

    2. PicklingError: 遇到不可封装的对象时出现的异常,继承自PickleError

    3. UnPicklingError: 拆封对象过程中出现的异常,继承自PickleError

    示例一:dumps功能
    import pickle
    data = ['aa', 'bb', 'cc']
    # dumps 将数据通过特殊的形式转换为只有python语言认识的字符串
    p_str = pickle.dumps(data)
    print(p_str)
    #结果为:
    b'x80x03]qx00(Xx02x00x00x00aaqx01Xx02x00x00x00bbqx02Xx02x00x00x00ccqx03e.

    #示例二:loads功能

    # loads 将pickle数据转换为python的数据结构
    mes = pickle.loads(p_str)
    print(mes)
    ['aa', 'bb', 'cc']

    示例三: dump功能
    # dump 将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
    with open('D:/tmp.txt', 'w') as f:
    pickle.dump(data, f)

    示例四: load功能
    # load 从数据文件中读取数据,并转换为python的数据结构
    with open('D:/tmp.txt', 'r') as f:
    data = pickle.load(f)

    ============================json模块--反序列化==================================

    Python的json模块,可以将字符串形式的json数据转化为字典,也可以将Python中的字典数据转化为字符串形式的json数据。

    josn.loads()用于将字典、列表、元组形式的字符串,装换成相应的字典、列表、元组。

    示例:

    1 import josn
    2     
    3 str = '{"desc": "invilad-citykey", "status": 1002}'
    4 result = josn.loads(str)
    5 print(result)
    View Code

    1、json字符串转为python基本数据类型

    json.load / json.loads

    两个方法功能类似,可选参数也相同,最大的区别在于,json.load方法接受的输入,即第一个参数,是包含json数据的文件对象,如open方法的返回对象,

    json.loads接受的输入是json字符串,而非文件对象。从输入类型的区别也可以看出两者的使用场合。

    可选参数包括是否需要转换整型、浮点型等数值的参数,还有一些复杂的功能,暂时没有用到,以后有机会再了解。

     

    2、python基本数据类型转换为字符串

    json.dump / json.dumps

    对应于load和loads,dump的第一个参数是对象字典,第二个参数是文件对象,可以直接将转换后的json数据写入文件,dumps的第一个参数是对象字典,其余都是可选参数。dump和dumps的可选参数相同

    ===================python模块知识拾遗===============================

    __doc__ : py文件的注释

    __file__ :本身自己文件的路径
    __package__ :导入的其他文件:指定所在的包,用"."分隔; 当前文件是None
    __cached__ : 缓存
    __name__ :如果是主文件, __name__ == "__main__",否则,等于模块名

    注意:
    1、主文件
      调用主函数前,必须加if __name__ == "__main__":
    2、__file__

      将bin文件夹下的路径添加到os.path,使用当前的主文件能直接使用import t3导入t3.py文件

    1 import os, sys
    2 print(__file__) #获取当前文件的所在路径
    3 p1 =os.path.dirname(__file__) #获取文件的上级目录路径
    4 p2 = "bin"
    5 new_path = os.path.join(p1, p2)
    6 print(new_path)
    7 sys.path.append(new_path)
    View Code

     

  • 相关阅读:
    c# 日期函数
    js中的replace问题和textarea回车符问题
    项目代码风格要求
    重温Observer模式--热水器·改
    xcode 编译glfw , 导出.h
    开发者所需要知道的 iOS 11 SDK 新特性
    RAC基础笔记(2)
    RAC基础笔记
    NSString copy,strong 修饰问题
    git 常用操作
  • 原文地址:https://www.cnblogs.com/june-L/p/11623611.html
Copyright © 2011-2022 走看看