常用模块 time sys os json pickle
# 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的更多相关文章
- day16 常用模块 sys os json pickle
知识点 os:和操作系统相关sys:和解释器相关 json:和操作JSON(一种数据交换格式)相关pickle:序列化 hashlib:加密算法Collections:集合类型 ...
- day25 模块,sys, logging, json, pickle
Python之路,Day13 = Python基础13 sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sy ...
- python常用模块之sys, os, random
一. sys模块 1. 作用: sys模块是与python解释器交互的一个接口 2. 具体使用 1. sys.argv 获取当前正在执行的命令行列表, 第一个为程序本身路径 print('file n ...
- 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 ...
- 常用模块(random,os,json,pickle,shelve)
常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...
- Python常用模块之sys
Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...
- python常用模块之sys模块
python常用模块之sys模块 1.sys.argv[]:命令行参数List,第一个元素是程序本身 # 写一个简单的python程序,代码如下: #!/usr/bin/python #coding= ...
- 常用模块一(os模块、序列化模块(json和pickle))
一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.r ...
- python 模块二(os,json,pickle)
#################################总结##################### os常用 os.makedirs('baby/安哥拉/特斯拉/黄晓明') os.mkd ...
随机推荐
- 开发环境使用docker 快速启动 单机 RocketMq
镜像说明 https://cr.console.aliyun.com/?spm=5176.2020520001.1001.8.kpaxIC&accounttraceid=176ddc4e-62 ...
- Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求 Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...
- mysql中的事物处理
首先,事物的概念,保证一组sql语句操作的完整性,在这个过程中要充分考虑到多用户同时访问数据库数据的情况. 关键词有COMMIT,ROLLBACK,,START TRANSACTION
- 11.17 flask (1)
2018-11-17 18:38:42 开始学习进行玩前面项目 开始进军flask flask是一个小型的web框架,,但是有很多第三方组件 最后组装组装就和django一样啦!!!!!!! pyt ...
- mysql winx64安装配置方法
1.mysql-5.7.21-winx64.zip解压到自己指定的路径 2.自己新建Data文件夹和my.ini文件 my.ini内容,直接复制修改路径即可 my.ini需要保存为ANSI格式 ,否 ...
- css学习_css常见属性用法
1.元素的显示模式 a.被动转换:浮动.绝对定位.固定定位(转换为行内块元素特性的模式---不设置宽度时,模式换行为行内块模式后宽度是内容宽度.) b.主动转换:display:block / in ...
- ES6中Set 和 Map用法
JS中Set与Map用法 一.Set 1.基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. ...
- [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 ...
- CSS弹性盒布局(display:flex)
CSS弹性布局(display:flex) 参考: http://www.runoob.com/w3cnote/flex-grammar.html https://www.jianshu.com/p/ ...
- 6、LwIP协议规范翻译——缓冲及内存管理
6.缓冲及内存管理 在一个通信系统中,内存缓冲管理系统必须容纳各种大小的缓冲数据,其范围从包含具有数百个字节的数据的全尺寸TCP段到只有几个字节的短ICMP回复包.此外,为了避免拷贝,应该让数据内容缓 ...