摘要: logging [欠] 阅读全文
posted @ 2024-09-26 23:04 jhchena 阅读(14) 评论(0) 推荐(0)
摘要: UTC/GMT:世界时间 本地时间:本地时区的时间。 全球总共:24个时区 东12 + 西12 区 4.3.1 time模块p180 time.time() ,时间戳:1970-1-1 00:00 当前经历的秒数 time.sleep(10),等待秒数。 time.timezone 得到相差的秒数, 阅读全文
posted @ 2024-09-26 23:04 jhchena 阅读(18) 评论(0) 推荐(0)
摘要: 4.2 shutil 模块 文件操作 运维时会使用此模块 import shutil # 删除目录 常用 返回值为None # shutil.rmtree('test') # 重命名 常用 # shutil.move('test','ttt') # 压缩文件 # shutil.make_archiv 阅读全文
posted @ 2024-09-26 23:03 jhchena 阅读(19) 评论(0) 推荐(0)
摘要: json,优点:所有语言通用;缺点:只能序列化基本的数据类型 list/dict/int... pickle,优点:python中所有的东西都能被他序列化(socket对象);缺点:序列化的内容只有python认识。 pickle 得到的数据类型是:字节 dumps 得到的数据类型是:字符串 imp 阅读全文
posted @ 2024-09-26 23:02 jhchena 阅读(14) 评论(0) 推荐(0)
摘要: # json支持的类型: 爬虫场景使用的比较多。 + + + | Python | JSON | + + + | dict | object | + + + | list, tuple | array | + + + | str | string | + + + | int, float | num 阅读全文
posted @ 2024-09-26 22:59 jhchena 阅读(12) 评论(0) 推荐(0)
摘要: dump 使用最多 import json # 序列化,将python的值转换为json格式的字符串。 v = [12,3,4,{'k1':'v1'},True,'asdf'] #外层必须是一个列表,内部字符串:必须得是双引号 v1 = json.dumps(v) # '[]' print(v1) 阅读全文
posted @ 2024-09-26 22:59 jhchena 阅读(10) 评论(0) 推荐(0)
摘要: import json # 反序列化,将json格式的字符串转换成python的数据类型 v2 = '["alex",123]' #json格式是一个字符串 # print(type(v2)) v3 = json.loads(v2) #由json字符串转换成列表 print(v3,type(v3)) 阅读全文
posted @ 2024-09-26 22:59 jhchena 阅读(11) 评论(0) 推荐(0)
摘要: 字典或列表中如有中文,序列化时想要保留中文显示: v = {'k1':'alex','k2':'李杰'} import json val = json.dumps(v,ensure_ascii=False) # ensure_ascii=False 保存中文 print(val) json是一个特殊 阅读全文
posted @ 2024-09-26 22:57 jhchena 阅读(20) 评论(0) 推荐(0)
摘要: 练习1: client 飘红可以导入原因:因为当前运行的run.py文件,此时当前目录下面的所有文件都会自动增加到sys.path里面,此时bin目录 下面的所有模块都可以导入 重点。练习2: #在排除pycharm 操作下,此场景下在终端运行run.py文件中,不能导入x方法。原因:s21test 阅读全文
posted @ 2024-09-26 22:55 jhchena 阅读(21) 评论(0) 推荐(0)
摘要: 可执行脚本只有一个时,使用类型二 可执行脚本有多个时,使用类型一 阅读全文
posted @ 2024-09-26 22:53 jhchena 阅读(9) 评论(0) 推荐(0)
摘要: import sys print(sys.path ) #打印当前sys.path的所有路径 import page 导入不成功,一般原因page.py所在的目录没有在sys.path 路径里 #其中import page 表示从根目录导入page模块, #解决方法有: #方法1:此时我们可通过 f 阅读全文
posted @ 2024-09-26 22:52 jhchena 阅读(27) 评论(0) 推荐(0)
摘要: 导入模块种类: import 模块 模块.函数() from 模块 import 函数 函数() 【as起别名 / *】 from 模块 import 函数 as 别名 别名() 3.3.2 示例二 lizohng - jd.py - pdd.py - tb.py 包.py import lizho 阅读全文
posted @ 2024-09-26 22:51 jhchena 阅读(18) 评论(0) 推荐(0)
摘要: P174/175 模块的调用 避免导入方法重名,对导入的方法进行取别名 from lizhongwei import func as f 3.3.1 示例一 # lizhongwei.py #!/usr/bin/env python # -*- coding:utf-8 -*- def show() 阅读全文
posted @ 2024-09-26 22:51 jhchena 阅读(17) 评论(0) 推荐(0)
摘要: 对于包的定义注意事项 py2:文件见中必须有 _ _init _ _.py 。 py3:不需要 _ init _.py . 推荐大家以后写代码时,都要加上此文件。 阅读全文
posted @ 2024-09-26 22:50 jhchena 阅读(18) 评论(0) 推荐(0)
摘要: 自定义模块 xxxx.py def f1(): print('f1') def f2(): print('f2') x1.py # 调用自定义模块中的功能 import xxxx xxxx.f1() xxxx.f2() 运行 python x1.py 定义模块 定义模块时可以把一个py文件或一个文件 阅读全文
posted @ 2024-09-26 22:49 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: 列举常用内置模块:json / time / os/ sys 内置模块回顾与补弃 p177 haslib random getpass shutil copy os sys time 阅读全文
posted @ 2024-09-26 22:49 jhchena 阅读(20) 评论(0) 推荐(0)
摘要: sys.argv sys.path ,默认Python去导入模块时,会按照sys.path中的路径挨个查找。 # import sys # sys.path.append('D:\\') # import oldboy 阅读全文
posted @ 2024-09-26 22:48 jhchena 阅读(11) 评论(0) 推荐(0)
摘要: os.rename 重命名 import os os.rename('db','sb') 阅读全文
posted @ 2024-09-26 22:48 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: os.makedirs 创建目录和子目录 import os file_path = r'db\xx\xo\xxxxx.txt' file_folder = os.path.dirname(file_path) if not os.path.exists(file_folder): os.maked 阅读全文
posted @ 2024-09-26 22:47 jhchena 阅读(20) 评论(0) 推荐(0)
摘要: path = '20190409_192149.mp4' # D:\code\s21day14\20190409_192149.mp4 import os v1 = os.path.abspath(path) print(v1) 阅读全文
posted @ 2024-09-26 22:47 jhchena 阅读(41) 评论(0) 推荐(0)
摘要: 补充: 转义 v1 = r"D:\code\s21day14\n1.mp4" (推荐) print(v1) v2 = "D:\\code\\s21day14\\n1.mp4" print(v2) 阅读全文
posted @ 2024-09-26 22:47 jhchena 阅读(9) 评论(0) 推荐(0)
摘要: os.listdir查看一个目录下所有的文件【第一层】 import os result = os.listdir(r'D:\code\s21day14') for path in result: print(path) 阅读全文
posted @ 2024-09-26 22:46 jhchena 阅读(17) 评论(0) 推荐(0)
摘要: os.walk 查看一个目录下所有的文件【所有层】 import os result = os.walk(r'D:\code\s21day14') #反回gentor 生成器对象 for a,b,c in result: # a,正在查看的目录 b,此目录下的文件夹 c,此目录下的文件 for it 阅读全文
posted @ 2024-09-26 22:46 jhchena 阅读(17) 评论(0) 推荐(0)
摘要: os.path.join 路径的拼接 import os path = "D:\code\s21day14" # user/index/inx/fasd/ v = 'n.txt' result = os.path.join(path,v) print(result) result = os.path 阅读全文
posted @ 2024-09-26 22:45 jhchena 阅读(10) 评论(0) 推荐(0)
摘要: os.path.dirname 获取路径的上级目录 import os v = r"D:\code\s21day14\20190409_192149.mp4" # r只要有出现转义符,自动在前面加一个\ print(os.path.dirname(v)) 阅读全文
posted @ 2024-09-26 22:45 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: os.makedirs 创建目录和子目录 import os file_path = r'db\xx\xo\xxxxx.txt' file_folder = os.path.dirname(file_path) if not os.path.exists(file_folder): os.maked 阅读全文
posted @ 2024-09-26 22:43 jhchena 阅读(19) 评论(0) 推荐(0)
摘要: 2.2 os p159 和操作系统相关的数据。 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.stat('20190409_192149.mp4').st_size 获取文件大小 os.path.abspath() 获取一个文件的 阅读全文
posted @ 2024-09-26 22:43 jhchena 阅读(56) 评论(0) 推荐(0)
摘要: 待更新 阅读全文
posted @ 2024-09-26 22:41 jhchena 阅读(10) 评论(0) 推荐(0)
摘要: import shutil shutil.rmtree(path) # 删除目录 阅读全文
posted @ 2024-09-26 22:41 jhchena 阅读(15) 评论(0) 推荐(0)
摘要: sys.argv 运维使用比较多 获取用户执行脚本时,传入的参数,将执行空格后的路径,进行append到一个列表 让用户执行脚本传入要删除的文件路径,在内部帮助用完后将目录删除 #!/usr/bin/env python # -*- coding:utf-8 -*- """ 让用户执行脚本传入要删除 阅读全文
posted @ 2024-09-26 22:41 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: import os # 1. st_size 读取文件大小(字节) file_size = os.stat('20190409_192149.mp4').st_size # 2.一点一点的读取文件 read_size = 0 with open('20190409_192149.mp4',mode= 阅读全文
posted @ 2024-09-26 22:39 jhchena 阅读(20) 评论(0) 推荐(0)
摘要: sys.getrecursionlimit python默认支持的递归数量 sys.stdout.write #打印进度条 p157 sys.stdout.write --> print (进度) #输入输出,默认不换行,print内部会使用stdout \n 换行 \t 制表符 \r 打印后,回到 阅读全文
posted @ 2024-09-26 22:38 jhchena 阅读(30) 评论(0) 推荐(0)
摘要: 获取一个值的引用计数器,写代码时不会使用到 a = [11,22,33] b = a print(sys.getrefcount(a)) #a引用3次 阅读全文
posted @ 2024-09-26 22:37 jhchena 阅读(46) 评论(0) 推荐(0)
摘要: py2: xrange,不会在内存中立即创建,而是在循环时。边循环边创建。 range ,在内存立即把所有的值都创建。 py3: range ,不会在内存中立即创建,而是在循环时。边循环边创建。 list(range(10)) """ 阅读全文
posted @ 2024-09-26 22:37 jhchena 阅读(14) 评论(0) 推荐(0)
摘要: 总结 p156 基本装饰器(更重要)占比80% def x1(func): def inner(*args,**kwargs): data = func(*args,**kwargs) # 执行原函数并获取返回值 return data return inner @x1 def index(): p 阅读全文
posted @ 2024-09-26 22:36 jhchena 阅读(16) 评论(0) 推荐(0)
摘要: # 写一个带参数的装饰器,实现:参数是多少,被装饰的函数就要执行多少次,把每次结果添加到列表中,最终返回列表。 def xxx(counter): print('x函数') def wrapper(func): print('wrapper函数') def inner(*args,**kwargs) 阅读全文
posted @ 2024-09-26 22:36 jhchena 阅读(12) 评论(0) 推荐(0)
摘要: 1.5 带参数的装饰器p155 # 第一步:执行 ret = xxx(index) # 第二步:将返回值赋值给 index = ret @xxx #不带参加装饰器 def index(): pass @uuu(9) # 带有参数:9,会 优先进行执行 def index(): pass # 第一步: 阅读全文
posted @ 2024-09-26 22:35 jhchena 阅读(15) 评论(0) 推荐(0)
摘要: 装饰器建议写法: def x1(func): def inner(*args,**kwargs): data = func(*args,**kwargs) return data return inner 1.4 关于前后 def x1(func): def inner(*args,**kwargs 阅读全文
posted @ 2024-09-26 22:35 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: def x1(func): def inner(*args,**kwargs): data = func(*args,**kwargs) return data return inner @x1 def f1(): print(123) v1 = f1() print(v1) def x1(func 阅读全文
posted @ 2024-09-26 22:34 jhchena 阅读(16) 评论(0) 推荐(0)
摘要: 如果给好几个函数写一个统一的装饰器,怎么办? def x1(func): def inner(*args,**kwargs): return func(*args,**kwargs) return inner @x1 def f1(): pass @x1 def f2(a1): pass @x1 d 阅读全文
posted @ 2024-09-26 22:34 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: 1.1 基本格式 def x(func): def inner(): return func() return inner @x def index(): pass 1.2 关于参数 def x(func): def inner(a1): return func(a1) return inner @ 阅读全文
posted @ 2024-09-26 22:33 jhchena 阅读(14) 评论(0) 推荐(0)
摘要: 33333day13内容回顾 函数 写代码的方式:面向过程 --> 函数式编程(多) --> 面向对象编程。 1.1 函数基础 def func(a1,a2): pass result = func(1,2) 1.2 参数 补充:对于函数的默认值慎用可变类型。 # 如果要想给value设置默认是空列 阅读全文
posted @ 2024-09-26 22:32 jhchena 阅读(19) 评论(0) 推荐(0)
摘要: 面试题: def func(a,b=[]) 有什么陷阱? 因为b是可变类型,如果不传递参数时,默认使用的同一个内存地址 看代码写结果 def func(a,b=[]): b.append(a) return b l1 = func(1) l2 = func(2,[11,22]) #先打印:[11,2 阅读全文
posted @ 2024-09-26 06:31 jhchena 阅读(14) 评论(0) 推荐(0)
摘要: day13内容回顾 函数 写代码的方式:面向过程 --> 函数式编程(多) --> 面向对象编程。 1.1 函数基础 def func(a1,a2): pass result = func(1,2) 1.2 参数 补充:对于函数的默认值慎用可变类型。 # 如果要想给value设置默认是空列表 # 不 阅读全文
posted @ 2024-09-26 06:29 jhchena 阅读(14) 评论(0) 推荐(0)
摘要: 今日总结 装饰器 (6**)重点 编写格式:双层嵌套函数 应用格式:@外层函数 理解: 变量赋值 def func(): print(1) v1 = func func = 666 看看到底return的是什么? 自己 > 上级作用域 背会: @xx # index = xx(index) def 阅读全文
posted @ 2024-09-26 06:29 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: 集合推导式 v1 = { i for i in 'alex' } 字典的推导式 v1 = { 'k'+str(i):i for i in range(10) } 阅读全文
posted @ 2024-09-26 06:20 jhchena 阅读(24) 评论(0) 推荐(0)
摘要: 列表推导式 基本格式 """ 目的:方便的生成一个列表。 格式: v1 = [i for i in 可迭代对象 ] v2 = [i for i in 可迭代对象 if 条件 ] # 条件为true才进行append """ v1 = [ i for i in 'alex' ] v2 = [i+100 阅读全文
posted @ 2024-09-26 06:20 jhchena 阅读(17) 评论(0) 推荐(0)
摘要: 编写装饰器 和应用 # 装饰器的编写 def x(func): def y(): # 前 ret = func() # 后 return ret return y # 装饰器的应用 @x def index(): return 10 @x def manage(): pass # 执行函数,自动触发 阅读全文
posted @ 2024-09-26 06:19 jhchena 阅读(14) 评论(0) 推荐(0)
摘要: 装饰器= def func(arg): def inner(): print('before') v = arg() print('after') return v return inner def index(): print('123') return '666' # 示例一 """ v1 = 阅读全文
posted @ 2024-09-26 06:18 jhchena 阅读(12) 评论(0) 推荐(0)
摘要: day13 .装饰器 v = 1 v = 2 # ######################## def func(): pass v = 10 v = func # ########################## def base(): print(1) def bar(): print( 阅读全文
posted @ 2024-09-26 06:17 jhchena 阅读(16) 评论(0) 推荐(0)
摘要: 总结 自定义函数 基本函数结构(98%) 高级 参数 闭包 函数的参数传递的是什么? 【内存地址=引用 or 值】 v = [11,2,33,4] def func(arg): print(id(arg)) # 列表内存地址 print(id(v)) # 列表内存地址 func(v) # 传递的是内 阅读全文
posted @ 2024-09-26 06:15 jhchena 阅读(18) 评论(0) 推荐(0)
摘要: 应用:用户注册与登录 import hashlib USER_LIST = [] def get_md5(data): obj = hashlib.md5("12:;idrsicxwersdfsaersdfsdfresdy54436jgfdsjdxff123ad".encode('utf-8')) 阅读全文
posted @ 2024-09-26 06:13 jhchena 阅读(18) 评论(0) 推荐(0)
摘要: 模块 md5 无法进行解密(只能撞库) 3. 模块 md5 无法进行解密(只能撞库) 将指定的 “字符串” 进行加密。 import hashlib def get_md5(data): obj = hashlib.md5() obj.update(data.encode('utf-8')) #转换 阅读全文
posted @ 2024-09-26 06:13 jhchena 阅读(67) 评论(0) 推荐(0)
摘要: 2. 面试题: 常用的内置函数有哪些? filter/map/reduce是什么意思? 什么是匿名函数? def func(): pass v = [lambda x:x+100,] 阅读全文
posted @ 2024-09-26 06:11 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: 闭包 def func(name): def inner(): print(name) return inner #不加表示,表示将inner函数内存地址进行返回 v1 = func('alex') #开僻内存空间:V1 v1() v2 = func('eric') #开僻内存空间:V2 v2() 阅读全文
posted @ 2024-09-26 06:10 jhchena 阅读(12) 评论(0) 推荐(0)
摘要: 面题 P127 128 info = [] def func(): print(item) for item in range(10): info.append(func) info[0]() #for 循环后 item的值为: 9 info = [] def func(i): def inner( 阅读全文
posted @ 2024-09-26 06:08 jhchena 阅读(9) 评论(0) 推荐(0)
摘要: 重点:记函数是由哪个创建的,函数就从哪里开始找 # 第一题 name = 'alex' def base(): print(name) # name = alex def func(): name = 'eric' base() # base中没有name,会从func函数中进行查找 func() 阅读全文
posted @ 2024-09-26 06:07 jhchena 阅读(19) 评论(0) 推荐(0)
摘要: 函数可以做返回值–进行返回 视频p125 def func(): print(123) def bar(): return func v = bar() # 将func函数名进行, 此时v = func v() name = 'oldboy' def func(): print(name) def 阅读全文
posted @ 2024-09-26 06:04 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: 函数内部的数据是否会混乱。 函数内部执行相互之间不会混乱 每个函数调用时,会进行单独进行开僻内存空间,函数执行完与内部元素无其他使用,开僻内存会进行销毁 执行完毕 + 内部元素不被其他人使用 => 销毁 阅读全文
posted @ 2024-09-26 06:02 jhchena 阅读(13) 评论(0) 推荐(0)
摘要: 无返回值 v = [11,22,33] v.append(99) # 无返回值 很少会进行return 仅有返回值: 基本为字符串 v = "alex" result = v.split('l') v = {'k1':'v2'} result1 = v.get('k1') #返回值,内部元素不修改 阅读全文
posted @ 2024-09-26 06:01 jhchena 阅读(23) 评论(0) 推荐(0)
摘要: # 第一题 for item in range(10): #不报错,没有函数,所有操作在全局作用域里面执行,item最后赋值为:9,此时item在缩进与全局都可以使用 pass print(item) # 第二题 item = 10 def func(): for item in range(10) 阅读全文
posted @ 2024-09-26 05:59 jhchena 阅读(18) 评论(0) 推荐(0)