标签:注意 def linux reading mat gif 老王 date 生产者消费者
一、json模块
json(JavaScript Object Notation)JavaScript对象标记,JS对象表示法,JS的数据格式。
目前(今天2018年3月31日),从前端传过来的数据,大部分是json格式,后端需要进行转换。就是js和python进行交互。
(一).注意事项
(1).json对象必须是个字符串
(2).json对象中,只要代表字符串,必须要用双引号。
(3).json对象中,不能出现单引号。同2
(二).几个会常用的方法
(1).json.dumps(dict_object) 将python的字典对象,转换为json对象
(2).json.loads(json_object) 将json对象,转换成python的字典
(3).json.dump(dict_object, open("file_name.json","w")) 将字典转换成json对象,并保存为json文件
(4).json.load(open("file_name.json")) 直接将文件中的json对象,转换成字典
二、os模块
目录及文件操作,与linux命令一样的效果。
比如:
os.listdir(path) -> ls
os.makedirs("name") -> mkdir
(一).练习:
编写一个函数,遍历路径下,所有的目录和子目录
""" 编写一个函数,遍历路径下,所有的目录和子目录 """ import os def list_all_file(file_path): paths = os.listdir(file_path) for each in paths: path_next = os.path.join(file_path, each) if os.path.isdir(path_next): list_all_file(path_next) else: print(os.path.join(file_path, path_next)) list_all_file(r"D:\python_local")
三、datetime模块
具体用到,具体google it
注意点:
(一).strptime() 前后的格式要一样。括号中,前面的时间字符串中是"-",那么后面要格式化的字符串也得是"-"。
(二).案例,输出一个带时区的日期时间格式:
import datetime def utc_now(): dt = datetime.datetime.now() utc_time = datetime.datetime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.microsecond, tzinfo=datetime.timezone.utc) return utc_time print(utc_now()) # 2018-07-06 16:59:50.256989+00:00
四、base64
是字符编码,不是加密。
网页上的图片、影音都是二进制文件。
现在图片一般不会转成base64了,一大串代码,前端还不拿刀来砍死你 —.—
五、日志模块
就是写日记,记录信息。
补充练习:
""" OOP之生产者消费者模型 用到一个模块 : 线程 需求 : 吃包子 有吃包子的人、有做包子的人 我要让吃包子和做包子同时进行,让他们达到一个相对平衡 """ import time import threading class PersonEatBaozi(threading.Thread): """ 吃包子的人 直接继承threading.Thread """ def run(self): while 1: global count if con.acquire(): # 上锁 if count < 100: con.wait() # 让线程等待着 else: count -= 30 print("{}老王吃了30个包子,还剩{}个包子".format(self.name, str(count))) con.notify() # 通知其他线程,去抢线程 con.release() # 解锁 time.sleep(1) class PersonMakeBaozi(threading.Thread): """做包子的人""" def run(self): while 1: global count if con.acquire(): if count > 1000: con.wait() else: count += 100 print("{}岛歌做了100个包子,共有{}个包子".format(self.name, str(count))) con.notify() con.release() time.sleep(1) if __name__ == ‘__main__‘: count = 500 con = threading.Condition() # 开启线程 for i in range(2): # 设置2个做包子的人 pm = PersonMakeBaozi() pm.start() # 启动线程 for i in range(5): # 设置5个吃货 pe = PersonEatBaozi() pe.start()
标签:注意 def linux reading mat gif 老王 date 生产者消费者
原文地址:https://www.cnblogs.com/xuanlv-0413/p/9279045.html