# import time
# print(time.time())  #秒数
# print('开始下载')
# time.sleep(2)
# print('下载完成')
# print(time.localtime())    # 东八区上海 time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=14, tm_min=32, tm_sec=22, tm_wday=2, tm_yday=100, tm_isdst=0)
# print(time.localtime()[l])  # 4
# print(time.localtime().tm_year)  #2019 年
# print(time.gmtime())        # utc时区 time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=6, tm_min=36, tm_sec=50, tm_wday=2, tm_yday=100, tm_isdst=0)
# print(time.localtime(298999))   #time.struct_time(tm_year=1970, tm_mon=l, tm_mday=4, tm_hour=19, tm_min=3, tm_sec=19, tm_wday=6, tm_yday=4, tm_isdst=0)
# print(time.localtime(time.time()))  #time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=14, tm_min=41, tm_sec=11, tm_wday=2, tm_yday=100, tm_isdst=0)
# print(time.localtime(2018).tm_year)  #1970
# res=time.strftime('%y_%m_%d %j days')   #19_04_10 100 days
# res=time.strftime('%Y_%m_%d %j days')   #2019_04_10 100 days
# print(res)
# t=(2010,4,10,10,29,22,2,200,0)
# res=time.strftime('%y_%m_%d %j days',t)  # 如果不传t 默认是time.localtime() 10_04_10 200 days
# print(res)
# 需求:输入一个年份,判断其是否是闰年
# while True:
#     year=int(input('year:'))
#     b1=year %400 ==0
#     b2 =year % 4 ==0 and  year %100 != 0
#     if b1 or b2:
#         print('是闰年')
#     else:
#         print('不是闰年')
'''
判断闰年:calendar.isleap(year)
查看某年某月日历: calendar.month(year,month)
查看某年某月起始星期与当月天数: calendar.monthrange(year,month)
查看某年某月某日是星期几: calender.weekday(year,month,day)
'''
import calendar 日历

# print(calendar.isleap(2019))   False
# print(calendar.month(2019,4))   日历      April 2019
#                                     Mo Tu We Th Fr Sa Su
#                                      l  2  3  4  5  6  7
#                                      8  9 10 11 12 13 14
#                                     15 16 17 18 19 20 21
#                                     22 23 24 25 26 27 28
#                                     29 30
# print(calendar.monthrange(2019,4))   #(0, 30) 0星期一 30天
# print(calendar.weekday(2018,9,9))    # 6 星期天

'''
当天时间: datetime.datetime.now()
昨天:datetime.datetime.now()+datetime.timedelta()
修改时间:c_time.replace([...])
格式化时间戳:datetime.date.fromtimestamp(timestamp)
'''
# import datetime   #时间加减 可以运算的时间
# tm=datetime.datetime.now()
# print(tm,type(tm))     #2019-04-10 15:21:20.222756 <class 'datetime.datetime'>
# import time
# print(type(time.time()))        #<class 'float'>
# import datetime
# day=datetime.timedelta(days=l)
# print(day,type(day))         #l day, 0:00:00 <class 'datetime.timedelta'>
# tm 与day都是对象,可以直接做运算
# print(tm-day)     #2019-04-09 15:21:20.222756

# tm是对象,还可以接着调用方法
# print(tm.replace(year=2100))   #2100-04-10 15:23:32.663331
#
# print(datetime.date.fromtimestamp(5656565653))  # 2149-04-01 需要时间戳

'''
import  sys
# print(sys.argv)   #['E:/代码存放位置/第四周/time os sys json pickle.py'] 命令行参数List,第一个元素是程序本身路径
# print(sys.path) # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
# print(sys.version)  #获取python解释程序的版本信息
# print(sys.maxsize)   #最大的整数值
    # a=908878788778787877
    # print(a,type(a))     #908878788778787877 <class 'int'>
# print(sys.platform)  #返回操作系统平台名称 win32

'''

'''
import  os
os.mkdir('dirname')  生成单级目录
os.makedirs('dirname1/..../dirname2')  生成多层目录
os.rename('oldname','newname')  重命名文件、目录
os.getcwd()   工作目录
os.rmdir('dirname')  删除单层空目录
os.removedirs('dirname1/.../dirname2') 移除多层空目录  若目录为空则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.listdir('dirname')  列举目录下所有资源
os.sep   路径分隔符
os.linesep  行终止符
os.pathsep  文件分隔符 分隔文件路径的字符串 win下为; linux下为:
os.name     操作系统名
os.environ  操作系统环境变量
os.system()  执行shell脚本
'''
# import  os
# print(os.getcwd())  #E:\代码存放位置\第四周  当前工作目录
# print(__file__)   #E:/代码存放位置/第四周/time os sys json pickle.py   当前工作的文件绝对路径
# os.mkdir('aaa')     #生成单级目录  不存在创建 存在报错
# os.rename('aaa','222')   #重命名  不存在报错,存在则修改名字
# os.remove('333.py')  #删除文件  不是文件夹
# os.rmdir(r'E:\代码存放位置\第四周\222')  # 删除文件夹
# os.rmdir('aaa/bbb')  #删除的是aaa下面的bbb
# os.rmdir('aaa')
# os.remove('aaa/bbb.py')  #删除的是aaa下面的bbb.py文件
#   os.rmdir('aaa')
# os.rmdir('a/b/c')
# os.mkdir('a/b/c')   #a,b必须存在 c必须不存在
# os.makedirs('aa/bb/cc')  #全存在,则报错 a,b 存在与否不是一定的
# os.removedirs('a/b/c')   #必须全部存在  c空删c b空 删b 以此类推,如果b不为空,删除c后就停止操作
# print(os.sep)   #\  路径分隔符
# print(ascii(os.linesep))   #'\r\n' 输出当前平台使用的行终止符
# print(os.pathsep)  # 输出用于分隔文件路径的字符串;
# print(os.system('dir'))    #运行shell命令,直接显示
# res=os.listdir(r'D:')
# print(res)              #打印d目录下所有文件和子目录 包括隐藏文件  并以列表形式打印
# print(os.name)  #操作系统名字 win nt

'''
执行文件的当前路径:_file__
返回path规范化的绝对路径:os.path.abspath(path)
将path分割成目录和文件名二元组返回:os.path.split(path)
上一级目录:os.path.dirname(path)
最后一级名称:os.path.basename(path)
路径是否存在:os.path.exists(path)  不区分文件还是文件夹
是否是绝对路径:os.path.isabs(path)
是否是文件:os.path.isfile(path)   必须存在 必须是文件
是否是(目录)路径:os.path.isdir(path)
路径拼接:os.path.join(path1[,path2[,...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
最后存取时间:os.path.getatime(path)
最后修改时间:os.path.getmtime(path)
目标大小:os.path.getsize(path)

'''
# import  os.path as os_path
# print(os_path)
# print(os_path.isdir(r'E:\代码存放位置\第四周\time os sys json pickle.py'))   # F如果path是一个存在的目录 返回 Ture 否则返回False
# print(os_path.isfile(r'E:\代码存放位置\第四周\time os sys json pickle.py'))    #T 如果path是一个存在文件,返回Ture 否则返回False
# print(os_path.exists(r'E:\代码存放位置\第四周\time os sys json pickle.py'))    # T 如果path存在,返回True;如果path不存在,返回False

# print(os_path.isdir(r'E:\代码存放位置\第四周'))   # T 如果path是一个存在的目录 返回 Ture 否则返回False
# print(os_path.isfile(r'E:\代码存放位置\第四周'))    #F 如果path是一个存在文件,返回Ture 否则返回False
# print(os_path.exists(r'E:\代码存放位置\第四周'))    # T 如果path存在,返回True;如果path不存在,返回False

# print(os_path.exists(r'aa'))   #True
# print(os_path.isabs(r'aa'))      #False  path是绝对路径返回Ture
# print(os_path.isabs(r'E:\代码存放位置\第四周\aa'))   #True
# print(os_path.abspath(r'aa'))    #E:\代码存放位置\第四周\aa    返回path规范化的绝对路径
import os
# print(os.path.split(r'E:\代码存放位置\第四周\time os sys json pickle.py'))
# 右切分 ('E:\\代码存放位置\\第四周', 'time os sys json pickle.py')

# print(os.path.split(r'D:/fullstack_s4/day17/代码/part1/系统模块.py'))
# ('D:/fullstack_s4/day17/代码/part1', '系统模块.py')

# print(os.path.split(r'D:\fullstack_s4\day17\代码\part1'))
# ('D:\\fullstack_s4\\day17\\代码', 'part1')

# print(os.path.split(r'D:\fullstack_s4\day17\代码\part1\\'))
# ('D:\\fullstack_s4\\day17\\代码\\part1', '')
# print(os.path.dirname(os.path.dirname(r'D:\fullstack_s4\day17\代码\part1\a\b')))
# D:\fullstack_s4\day17\代码\part1
# print(os.path.basename(r'D:\fullstack_s4\day17\代码\part1\a\b'))
# b
# print(os.path.join(r'D:\fullstack_s4\day17\代码\part1', 'a', 'b'))
# D:\fullstack_s4\day17\代码\part1\a\b
# 先将项目的根目录设置为常量-》项目中的所有目录与文件都应该参照目录进行导包
# BASE_PATH=os.path.dirname(os.path.dirname(__file__))
# print(BASE_PATH)  #E:/代码存放位置
# sys.path.append(BASE_PATH)
# 重点:将项目目录添加至环境变量

# 拼接项目中某一文件或文件夹的绝对路径
# file_path=os.path.join(BASE_PATH,'part1','时间模块.py')
# print(file_path)   #E:/代码存放位置\part1\时间模块.py
# print(os.path.exists(file_path))
# print(os.path.getmtime(r'D:\fullstack_s4\day17\代码\part1\时间模块.py'))
# 最后修改时间

# >>>os.path.normcase('c:/windows\\system32\\')
# 'c:\\windows\\system32\\'
# 在Linux和mac平台上,该函数会原样返回path,在win平台上会将路径中虽有字符转为小写,并将所有斜杠转换成反斜杠
# 重点:
# import os
# import sys
# BASE_PATH=os.path.dirname(os.path.dirname(__file__))
# sys.path.append(BASE_PATH)
# BASE_PATH=os.path.normpath(os.path.join(__file__,'..','..'))
# sys.path.append(BASE_PATH)

# 序列化
import json

# 将json类型的对象与json类型的字符串相互转换
# {}与[]嵌套型成的数据(python中建议数据的从{}开始)
dic = {
    'a': 1,
    'b': [1, 2, 3, 4, 5]
}
# 序列化:将python的字典转化为字符串传递给其他语言或保存
# json_str = json.dumps(dic)
# print(json_str, type(json_str))  # {"a": l, "b": [l, 2, 3, 4, 5]} <class 'str'>
with open('l', 'w', encoding='utf-8')as w:
    json.dump(dic, w)  # 先将dic对象转化为字符串,在写入文件

# 反序列化
# json_str='''{"a":l,"b":['l',2,3,4,5]}'''     #'l'
# json_str = "{'a': l, 'b': [l, 2, 3, 4, 5]}"  #'a'
# json_str = '''{"a": l, "b": [l, 2, 3, 4, 5]}'''
# new_dic=json.loads(json_str)   #json类型的字符串不认识 ''
# print(new_dic,type(new_dic))   #将字符串转成字典

# with open('l','r',encoding='utf-8')as r:
#     res=json.load(r)
#     print(res,type(res))  #{'a': 1, 'b': [1, 2, 3, 4, 5]} <class 'dict'>

import pickle
# 序列化:对象=》字符串 
dic={
    'a':1,
    'b':[1,2,3,4,5]
}
res=pickle.dumps(dic)
print(res)       #byesl类型 b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02]q\x03(K\x01K\x02K\x03K\x04K\x05eu.'

with open(', 'wb') as w:
    pickle.dump(dic, w)
注:字节形式操作 反序列化成对象:
print(pickle.loads(res))   #{'a': 1, 'b': [1, 2, 3, 4, 5]}
从文件读流中反序列化成对象
with open(','rb')as f:
    res1=pickle.load(f)
    print(res1)           #{'a': 1, 'b': [1, 2, 3, 4, 5]}
json类型的对象与json类型的字符串相互转换
pickle可以将任意类型对象与二进制进行转换
json.dumps将字典转成字典形式的字符串(序列化 字典无序,字符串有序(索引))
json.loads 将字典形式的字符串转换成字典(反序列化)
和文件有关的只有序列dump 反序列load(b模式下)
dump 两个参数一个字典,一个文件名
load 只有一个参数 文件名
import  os
def ls(path,files=[]):
    if not os .path.exists(path):   #如果输入的不是文件或者目录的path
        return []                    #返回一个空列表
    if os.path.isfile(path):        #如果是文件的路径
        return [path]               #把它添加到列表里面
    file_list=os.listdir(path)       #只能是文件夹,列出文件夹下的所有文件和子目录 包括隐藏文件并以列表打印
    for v in file_list:              #从列表中循环取出
        file_path=os.path.join(path,v)   #把它和文件夹路径组合 返回
        if os.path.isfile(file_path):   #如果返回的是文件路径
            files.append(file_path)        #把文件路径添加到列表里
        else:
            ls(file_path)                #如果循环的还是一个文件夹 则继续循环
    return files                        #循环完毕返回列表

res=ls(r'E:\代码存放位置\第四周\part')
print(res)

常用模块 time sys os json pickle的更多相关文章

  1. day16 常用模块 sys os json pickle

          知识点 os:和操作系统相关sys:和解释器相关 json:和操作JSON(一种数据交换格式)相关pickle:序列化 hashlib:加密算法Collections:集合类型       ...

  2. day25 模块,sys, logging, json, pickle

      Python之路,Day13 = Python基础13 sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sy ...

  3. python常用模块之sys, os, random

    一. sys模块 1. 作用: sys模块是与python解释器交互的一个接口 2. 具体使用 1. sys.argv 获取当前正在执行的命令行列表, 第一个为程序本身路径 print('file n ...

  4. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  5. 常用模块(random,os,json,pickle,shelve)

    常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...

  6. Python常用模块之sys

    Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...

  7. python常用模块之sys模块

    python常用模块之sys模块 1.sys.argv[]:命令行参数List,第一个元素是程序本身 # 写一个简单的python程序,代码如下: #!/usr/bin/python #coding= ...

  8. 常用模块一(os模块、序列化模块(json和pickle))

    一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.r ...

  9. python 模块二(os,json,pickle)

    #################################总结##################### os常用 os.makedirs('baby/安哥拉/特斯拉/黄晓明') os.mkd ...

随机推荐

  1. 开发环境使用docker 快速启动 单机 RocketMq

    镜像说明 https://cr.console.aliyun.com/?spm=5176.2020520001.1001.8.kpaxIC&accounttraceid=176ddc4e-62 ...

  2. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求   Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...

  3. mysql中的事物处理

    首先,事物的概念,保证一组sql语句操作的完整性,在这个过程中要充分考虑到多用户同时访问数据库数据的情况. 关键词有COMMIT,ROLLBACK,,START TRANSACTION

  4. 11.17 flask (1)

    2018-11-17 18:38:42 开始学习进行玩前面项目  开始进军flask flask是一个小型的web框架,,但是有很多第三方组件 最后组装组装就和django一样啦!!!!!!! pyt ...

  5. mysql winx64安装配置方法

    1.mysql-5.7.21-winx64.zip解压到自己指定的路径  2.自己新建Data文件夹和my.ini文件 my.ini内容,直接复制修改路径即可 my.ini需要保存为ANSI格式 ,否 ...

  6. css学习_css常见属性用法

    1.元素的显示模式 a.被动转换:浮动.绝对定位.固定定位(转换为行内块元素特性的模式---不设置宽度时,模式换行为行内块模式后宽度是内容宽度.) b.主动转换:display:block  / in ...

  7. ES6中Set 和 Map用法

    JS中Set与Map用法 一.Set 1.基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. ...

  8. [Database.System.Concepts(6th.Edition.2010)].Abraham.Silberschatz. Ch8学习笔记

    Database Ch8.relational design 8.1 features of good design 8.1.1 larger alternatives why design is g ...

  9. CSS弹性盒布局(display:flex)

    CSS弹性布局(display:flex) 参考: http://www.runoob.com/w3cnote/flex-grammar.html https://www.jianshu.com/p/ ...

  10. 6、LwIP协议规范翻译——缓冲及内存管理

    6.缓冲及内存管理 在一个通信系统中,内存缓冲管理系统必须容纳各种大小的缓冲数据,其范围从包含具有数百个字节的数据的全尺寸TCP段到只有几个字节的短ICMP回复包.此外,为了避免拷贝,应该让数据内容缓 ...