Python常用模块之json、os、time

模块的概念:一个Python文件就是一个模块

模块大体分为三类:

1.Python自带的标准模块

2.第三方模块,需要安装,提供扩展功能

3.自己写的Python文件

 

下面先讲下Python自带的三个常用模块

一、常用模块--Json模块

    Json是字符串,只是形似字典, Python的写法中,字典的key值一般引用单引号' ',而Json中都是引用双引号" '',

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

1. 把Json字符串转为字典 -- json.loads( )和json.load()

    json.loads(),第一个入参是Json字符串,例:

    import json
    json_str='''
    {"name":"xiaohei","age":18,"sex":"男","age":18}
    '''
    res=json.loads(json_str)#把字符串转为字典
    print(res)
    print(type(json_str))
    print(type(res))

    输出结果: 

    {'name': 'xiaohei', 'age': 18, 'sex': '男'}
    <class 'str'>
    <class 'dict'>

    json.load(),第一个入参是包含Json数据的文件对象

    f=open("user.json",encoding="utf-8")

    res=json.loads(f.read())

    print(res)

    res=json.load(f)

    print(res)

    两种方法最终实现的效果是一样的。

 

2. 字典转换为json--json.dumps( )和json.dump()

    json.dumps()的第一个参数是对象字典,还有其他可选参数,也很实用。    

    ensure_ascii 默认为True,保证转换后的json字符串中全部是ascii字符,非ascii字符都会被转义。如果数据中存在中文

    或其他非ascii字符,可以将ensure_ascii设置为False,保证输出结果正常。

    indent 缩进,默认为None,没有缩进,设置为正整数时,输出的格式将按照indent指定的半角空格数缩进。例: 

    dic = {

                 "xiaohei":{
                                  "age":18,
                                  "password":12345,
                                  "sex":"男",
                                  "addr":"北京"
                                 },
                  "马春波":{
                                  "age":18,
                                  "password":12345,
                                  "sex":"男",
                                  "addr":"北京"
                                 },
                  "王东泽":{
                                 "age":18,
                                 "password":12345,
                                 "sex":"男",
                                 "addr":"北京"
                                 },
           }
    res=json.dumps(dic,ensure_ascii=False,indent=4)#把字典变成字符串
    print(res)
    f=open("a.json","w",encoding="utf-8")
    f.write(res)   #写入文件的时候,如果是.json文件,会显示出json字体颜色等

    json.dump()的第一个参数是对象字典,第二个参数是文件对象,可以直接将转换后的json数据写入文件,其他可选参数与

    dumps相同。例:   

    fw=open("newuser.json","w")
    json.dump(dict,fw,ensure_ascii=False,indent=4)

 

二、 常用模块--os模块

1. os.listdir(path)—— 列出某个目录下所有文件,返回列表 

    os.getcwd()—— 获取当前目录

2. os.mkdir(r'test/niuhy/haha')——创建路径中的最后一级目录,如果父目录不存在,会报错

    os.makedirs(r"test1/lyl/aaa")——创建多层目录,如果父目录不存在,可以创建父目录

3. os.path.isfile()——判断指定对象是否为文件。是返回True,否则False

    os.path.isdir()——判断指定对象是否为目录。是True,否则False。

4. os.path.exists(path) ——  path存在,返回True。不存在,返回false

5. os.path.split(path)——将路径分解为(文件夹,文件名),返回元组

    以路径字符串最后一个分隔字符"\"进行分割,若路径字符串最后一个字符是\,则只有文件夹部分有值;若路径字符串中均无\,

    则只有文件名部分有值。若路径字符串有\,且不在最后,则文件夹和文件名均有值。返回的文件夹的结果不包含\.

    例:

    res=os.path.split('/Users/nhy/Desktop/stu.txt')

    print(res)

    输出结果:

    ('/Users/nhy/Desktop', 'stu.txt')

    os.path.join(path1,path2,...)——自动拼接路径,将path进行组合,不用考虑分割符,若其中有绝对路径,则之前的path

    将被删除

    例1:

    res=os.path.join("test","HAHA","a.txt")

    print(res)

    输出结果:

    ‘test\HAHA\a.txt’

    例2:

    res= os.path.join('D:\python\b', 'D:\pythontest\a')

    print(res)

    输出结果:

    'D:\pythontest\a'

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

    os.path.basename(path)——返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)

    的第二个元素

7. os.chdr()——更改当前目录

    os.chdr('../day4)按相对路径更改

    os.chdr('/Users/nhy/Desktop')按绝对路径更改

8. os.path.abspath(path)——返回标准化的绝对路径

    res= os.path.abspath('..')#根据相对路径取绝对路径

    print(res)

9.os.environ——查看电脑的环境变量

10. os.system('hhhsdf')——执行操作系统命令

 

三、常用模块--time模块

    时间戳:从计算机诞生开始按秒计算

    格式化时间:YYYY-MM-DD或YYYYMMDD等

    时间元组:time.struct_time(tm_year=2018, tm_mon=12, tm_mday=4, tm_hour=17, tm_min=16, tm_sec=41,

    tm_wday=1,tm_yday=338, tm_isdst=0)

1. time.time()——取时间戳

2 .time.gmtime([secs])——接收时间戳,转化为时间元组,按标准时间转换。不输入参数时默认取当前时间的时间戳。

    time.localtime([secs])——接收时间戳,转化为时间元组,按当地时间转换。不输入参数时默认取当前时间的时间戳。

3 .time.strftime(format[,t])——把时间元组转换为格式化的时间,t不指定时,默认传入time.locatime()

    time.strptime(string[,format])——把格式化时间转化为时间元组

    两者实际是逆操作

4. time.mktime(t) —— 接收时间元组,转化为时间戳

   定义一个函数,把时间戳转为格式化时间:   

    def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
     #时间戳转格式化好的时间
          if timestamp:
              time1 = time.localtime(timestamp)
              res = time.strftime(format, time1)
          else:
              res = time.strftime(format)
          return res

 

    定义一个函数,把格式化时间转为时间戳:        

    def strTotimestamp(str=None,format='%Y%m%d%H%M%S'):
    #格式化的时间转时间戳
          if str:
             timep = time.strptime(str, format)
             res = time.mktime(timep)
         else:
             res = time.time()
         return int(res)

 

转载于:https://www.cnblogs.com/yangjingwrite/p/10065812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值