求求了记在脑子里吧憋搁着查了

json
# load 针对文件句柄
with open('demo.json', 'r') as f:
    a_json = json.load(f)
# 也可以简写为:
a_json = json.load(open('demo.json','r'))

# loads 针对内存对象(json字符串)
a_json = json.loads('{'a':'1111','b':'2222'}')
# 需要读入文件时:
with open('demo.json', 'r') as f:
    a_json = json.loads(f.readline())
    # 注意行末'\n'字符;如果要读多行,多次readline,或用readlines读入列表


# dump 将dict类型转换为json字符串格式,写入到文件(易存储)
a_dict = {'a':'1111','b':'2222'}
with open('demo.json', 'w') as f:
	json.dump(a_dict, f)
# 也可以简写为:
json.dump(a_dict, open('demo.json', 'w'))

# dumps 将dict转换为string(易传输)
a_dict = {'a':'1111','b':'2222'}
a_str = json.dumps(a_dict)
# 需要写入文件时:
with open('demo.json', 'w') as f:
	f.write(json.dumps(a_dict))
	# 如果要写多行,别忘了行尾加'\n'
时间戳
import time, datetime

# 时间戳 -> 格式化
# 使用time
timeStamp = 1381419600
dateArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", dateArray)
print(otherStyleTime)   # 2013--10--10 23:40:00
# 使用datetime
timeStamp = 1381419600
dateArray = datetime.datetime.fromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2013--10--10 23:40:00
# 使用datetime,指定utc时间,相差8小时
timeStamp = 1381419600
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2013--10--10 15:40:00
	
# 日期加减days(import datetime)
# 步骤1:先转换为dateArray
# 时间戳类型转换方式:
dateArray1 = datetime.datetime.fromtimestamp(1381419600)
# >> datetime.datetime(2013, 10, 10, 23, 40)
# 格式化类型转换方式:
from dateutil.parser import parse
dateArray2 = parse("20201214")
# >> datetime.datetime(2020, 12, 14, 0, 0)
# 步骤2:设置offset
offset = datetime.timedelta(days=1)
# 步骤3:加减days
dateArray1+offset
# >> datetime.datetime(2013, 10, 11, 23, 40)
dateArray2+offset
# >> datetime.datetime(2020, 12, 15, 0, 0)

read file
## 1
with open(file, 'r') as fin:
	for line in fin:
		...

## 2
for line in open(file, 'r'):
	...

## 3 readline readlines read
fin = open(file, 'r')
line_list = fin.readlines() # 读取文件所有行,返回列表
a_line = fin.readline() # 逐行读取文件的每一行,返回一行字符串
all_line = fin.read() # 读取文件所有行,返回长字符串

## 4 sys
import sys
sys.stdin = open(file, 'r')
for line in sys.stdin:
	...
write file
## 1 write writelines
with open('fout.txt', 'w') as f:
	f.write(字符串)
	f.writelines(字符串列表)
	f.flush()	# 可以实现将缓冲区的数据写入文件中
	
## 2
__console__ = sys.stdout
sys.stdout = open('fout.txt', 'w')
print('123')
sys.stdout = __console__
decode
# urldecode
import urllib.parse
nick_name = urllib.parse.unquote(nick_name)
# python2里是urllib.unquote
# 而在python3里是urllib.parse.unquote

# 字符编码
'彭于晏'.encode('unicode_escape')
# >> b'\\u5f6d\\u4e8e\\u664f'

# 解码
s = '\u5f6d\u4e8e\u664f'
s = s.encode("unicode_escape").decode("unicode_escape")
print(s)
# >> 彭于晏
异常处理
# 输出错误信息
sys.stderr.write('error')

# 抛出异常
raise Exception('emm')

# try except
try:
    执行代码
except:
    发生异常时执行
else:
    不发生异常时执行
finally:
    无论如何都执行
正则匹配
# 中文
re.findall('[\u4e00-\u9fa5]+', 'C-5班-123-彭于晏')
# >> ['班', '彭于晏']

# 数字
re.findall('\d+','S4-123-111-吴彦祖-N1')
# >> ['4', '123', '111', '1']

# 英文
re.findall('[A-Za-z]+','C-323-Sophia+-O02-212')
# >> ['C', 'Sophia', 'O']
logging
import logging
import logging.handlers

def get_main_logger(fn):
    logger = logging.getLogger('sys')
    # DEBUG INFO WARN ERROR FATAL
    logger.setLevel(logging.DEBUG)
    f_handler = logging.handlers.TimedRotatingFileHandler(filename=fn,when="MIDNIGHT",interval=1,backupCount=7)
    f_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d] - %(message)s"))
    logger.addHandler(f_handler)
    return logger

log = get_main_logger('/Users/OHHH/Desktop/log.test')
try:
    a = 1/0
except:
    log.debug(traceback.format_exc())
MD5加密
import hashlib

#python2
hashlib.md5('tt%s' % 211355477).hexdigest()
>>'756746f4f22067ef08984938eec82568'

#python3
hashlib.md5(bytes('tt%s' % 211355477, encoding='utf-8')).hexdigest()
>>'756746f4f22067ef08984938eec82568'
urllib
# 只能python2
import urllib2
url = 'https://www.baidu.com'
response = urllib2.urlopen(url)
print(response.read())

# python2、python3都可用
import urllib.request
url = 'www.baidu.com'
response = urllib.request.urlopen(url)
print(response.read())

# 如果返回结果是json可如下加载:
res = json.loads(r.read())

其他相关(如GET/POST)参考:
https://www.cnblogs.com/melonjiang/p/5768440.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值