推导式(Comprehensions)
示例代码
# 列表推导式
list_1 = [1, 2, 3, 4, 5, 6, 7]
list_2 = [i**2 for i in num if x > 0]
# 字典推导式
dict_1 = {...}
dict_2 = {dict_1.get(i): i for i in dict_1.keys()}
可参考链接
菜鸟教程 | 列表、字典与集合推导式
json读写
提前定义函数,方便后续使用
def write_json(filename, json):
with open(filename, 'w+') as file:
json.dump(json, file)
pass
def read_json(filename):
with open(filename) as file:
data = json.load(file)
return json
文件权限符号
r -> 打开只读文件,文件必须存在。
r+ -> 打开可读写复的文件,文件必须存在。
w -> 打开只写文件。文件不存在,建立文件;文件存在,覆盖写入。
w+ -> 打开可读写文件。文件不存在,建立文件;文件存在,覆盖写入。
a -> 打开只写文件。文件不存在,建立文件;文件存在,追加写入。
a+ -> 打开可读写文件。文件不存在,建立文件;文件存在,追加写入。
logging库模板
import logging
import time
log_filename = "log\{}.log".format(time.asctime().replace(":","_"))
logger = logging.getLogger()
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s'' %(levelname)s [%(filename)s : %(lineno)d ]'' : %(message)s', datefmt='[%Y/%m/%d %H:%M:%S]')
# 设置屏幕打印的格式
sh = logging.StreamHandler()
sh.setFormatter(formatter)
logger.addHandler(sh)
# 设置log保存
fh = logging.FileHandler(log_filename, encoding='utf8')
fh.setFormatter(formatter)
logger.addHandler(fh)
# 能够较好区分不同次运行的log文件
# 同时保存与打印到屏幕
# 复制粘贴即用,懒批限定
Redis
# 初始化实例
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
# hash操作
r.hset("hash1", "k1", "v1") # 存入单个键对
r.hsetnx("hash1", "k2", "v2") # 只能新建
r.hmset("hash1", {"k1": "v1", "k2": "v2"}) # 存入多个键对
r.hget("hash1", "k1") # 取出k1对应value
r.hmget("hash1", ["k1", "k2"]) # 取出多个键值对应value
r.hkeys("hash1") # 取出hash1的key list
r.hvals("hash1") # 取出hash1的value list
r.hgetall("hash1") # 取出name的所有键对
更多请见
Python redis 使用介绍
redis | 图形化界面推荐
解包
list = [1, 2]
a, b = list
*c = list
def display(a, b):
print(a, b)
display(*list)
参考链接
python有趣的解包用法
selenium
browser = webdriver.Edge("C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe")
list_t = browser.find_elements_by_css_selector("#app > div > div.act-list > ul > li")
time
time_stamp = time.mktime(time.strptime("2016-09-27", "%Y-%m-%d"))
time = time.ctime(time_stamp )
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为 0,星期一为 1,以此类推。
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身