a=1 """ json的dumps,loads,dump,load功能总结 json.dumps(x) 把python的(x)原对象转换成json字符串的对象,主要用来写入文件。 json.loads(f) 把json字符串(f)对象转换成python原对象,主要用来读取文件和json字符串 json.dump(x,f) 把python的(x)原对象,f是文件对象,写入到f文件里面,主要用来写入文件的 json.load(file) 把json字符串的文件对象,转换成python的原对象,只是读文件 """ import json # json的dumps,loads的功能: data = {'k1':123,'k2':456} s_str=json.dumps(data) #把data对象序列化成字符串 >>>>>#序列化的过程 # print(s_str) #{"k2": 456, "k1": 123} # print(type(s_str)) str with open("js_new","w") as f: f.write(s_str) #把json的字符串写入到文件js_new #注:用之前先把上面的写文件的方式给注释掉 with open("js_new","r") as f: aa = json.loads(f.read()) #把字符串重新读到python原来数据对象 >>>>#反序列化过程 print(aa) # print(type(aa)) #<class 'dict'> # json的dump,load的功能: import json data = {'k1':123,'k2':456} with open("json_dump","w") as f: json.dump(data,f) #json.dump(x,f) x是python原来数据的对象,f是文件对象 主要是用来写python对象到文件里面 with open("json_dump","r") as f: bb = json.load(f) print(bb) print(type(bb)) #<class 'dict'> #json.read(f) #f是文件对象,把文件对象的数据读取成原来python对象的类型
import os """ os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") #改变当前脚本工作目录;相当于shell下cd os.curdir #返回当前目录: ('.') os.pardir #获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') #可生成多层递归目录 os.removedirs('dirname1') #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir('dirname') #生成单级目录;相当于shell中mkdir dirname os.rmdir('dirname') #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir('dirname') #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() #删除一个文件 os.rename("oldname","newname") #重命名文件/目录 os.stat('path/filename') #获取文件/目录信息 os.sep #输出操作系统特定的路径分隔符,win下为"\",Linux下为"/" os.linesep #输出当前平台使用的行终止符,win下为" ",Linux下为" " os.pathsep #输出用于分割文件路径的字符串 win下为;,Linux下为: os.name #输出字符串指示当前使用平台。win->'nt'; Linux->'posix' os.system("bash command") #运行shell命令,直接显示 os.environ #获取系统环境变量 os.path.abspath(path) #返回path规范化的绝对路径 os.path.split(path) #将path分割成目录和文件名二元组返回 os.path.dirname(path) #返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) #返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素 os.path.exists(path) #如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) #如果path是绝对路径,返回True os.path.isfile(path) #如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) #如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 print(os.path.join("D:\python\wwww","xixi")) #做路径拼接用的 # D:pythonwwwwxixi os.path.getatime(path) #返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path) #返回path所指向的文件或者目录的最后修改时间 """
import random print(random.random()) #随机生成一个小于1的浮点数 print(random.randint(1,3)) #[1-3]随机生成1到3的数 print(random.randrange(1,3)) #[1-3)随机生成1到2的数 print(random.choice([1,2,5,7,[22],8])) #随机在列表中选取一个元素 print(random.sample([1,2,5,7,[22],8],2)) #随机在列表中选取2个元素 print(random.uniform(1,3)) #随机生成1-3的之间的浮点数 print(random.shuffle([1,2,5,7,8])) #打乱列表中元素的顺序 # 随机生成5位数的验证码 def v_code(): # 随机生成5位数的验证码 code="" for i in range(5): num=random.randint(0,9) alf=chr(random.randint(65,90)) add=random.choice([num,alf]) code+=str(add) return code print(v_code()) """ chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。 chr(i) chr(68) # 'D' """
import sys,time """ sys.argv #在命令行参数是一个空列表,在其他中第一个列表元素中程序本身的路径 sys.exit #退出程序,正常退出时exit(0) sys.version #获取python解释程序的版本信息 sys.path #返回模块的搜索路径,初始化时使用python PATH环境变量的值 sys.platform #返回操作系统平台的名称 sys.stdin #输入相关 sys.stdout #输出相关 sys.stderror #错误相关 sys.modules[__name__] #调取当前所在的模块 """ for i in range(1,20): sys.stdout.write("#") # #显示写入 time.sleep(0.2) sys.stdout.flush() # 把每次写入的东西都给刷新到屏幕 def view_bar(num, total): rate = float(num) / float(total) rate_num = int(rate * 100) r = ' %d%%' % (rate_num, ) #%% 表示一个% sys.stdout.write(r) sys.stdout.flush() if __name__ == '__main__': for i in range(0, 101): time.sleep(0.1) view_bar(i, 100)
""" 在python中,通常3种时间的表示 1.时间戳(timestamp):时间戳表示的是从从1970年1月1日00:00:00开始按秒计算的偏移量。 我们运行“type(time.time())”,返回的是float类型。 2.格式化的时间字符串 (年-月-日 时:分:秒) 3.元组(struct_time)结构化时间:struct_time元组共有9个元素共九个元素:(年,月,日,时, 分,秒,一年中第几周,一年中第几天,夏令时) """ import time 1 # time.time()-----时间戳 print(time.time()) # 1550036268.3765001 2 # time.localtime(second)-----加上second(时间戳)转换结构化时间,不加则显示当前的结构化时间 print(time.localtime()) print(time.localtime(1550036268.3765001)) 3 # time.gmtime(second)-----#utc时区加上second(时间戳)转换结构化时间,不加则显示当前的结构化时间 print(time.gmtime()) print(time.gmtime(1550036268.3765001)) 4 # mktime ()-----结构化时间转换为时间戳 print(time.mktime(time.localtime())) 5 # time.ctime(seconds)-----#将加上时间戳转换为时间戳的格式化时间,不加则返回当前的的格式化时间 print(time.ctime()) # Wed Feb 13 13:51:53 2019 6 # time.asctime(p_tuple)-----#加参数是加一个结构化时间,把加的结构化时间转换为格式化时间,不加则返回当前的格式化时间 print(time.asctime()) print(time.asctime(time.gmtime())) 7 # time.strftime(format,p_tuple)-----#把一个结构化时间转化相应的格式时间 print(time.strftime("%Y-%m-%d %X",time.localtime())) # 2019-02-13 13:56:45 8 # time.strptime(string,format)-----#把相应的格式时间,转换为结构化时间 print(time.strptime("2015-5-20 22:22:22","%Y-%m-%d %X")) 9 # time.sleep(second)-----#将程序延迟指定的秒数运行 print(time.sleep(2)) 10 # time.clock() # 这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。 # 而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间,即两次时间差。