智能决策上手系列教程索引
收集一些零散的小技巧备用,不断更新。
无法替换去除的空格
str.replace(str1,str2,max)
官方说明就这么多,str1和str2只能是字符串,不能用正则。
有时候replace怎么也去不掉某些空格,这是因为空格有很多种,除了一般的' '
还有'\xa0'
。
repr是替换掉反引号,反引号就是键盘左上角波浪键~下面那个,用repr可以打印出字符串的本来面貌,把
\xa0`原样打印出来。
import re
s='AA \xa0BB'
print(s)
print(repr(s))
print(s.replace(' ',''))
print(s.replace(' ','').replace('\xa0',u''))
print(re.sub('\s+','',s))
输出的结果是:
image.png
从上面看到,re.sub还是很强大的,可以把各种空格都当做\s来替换,+是数量表示一个或多个,就是不管多少个空格和\xa0都会被一个\s+都替代。但是正则表达式re比较麻烦,不推荐使用。
遇到类似问题的解决思路是:用repr把它打印出来,看看都是什么,然后逐个replace。
格式化输出对象
可以利用json.dumps(obj,indent=2,ensure_ascii=False)来把一个对象、dict漂亮整齐的打印出来
import json
obj={
'a':1,
'b':{
'b1':11,
'b2':22,
}
}
s=json.dumps(obj, indent=2,ensure_ascii=False)
print(s)
得到结果:
image.png
网页数据导致的乱码
如果html页面header里面没有包含编码格式,那么BeautifulSoup就会当做网页默认编码'ISO-8859-1'来处理,导致乱码。
解决办法就是重新编码再解码成'gbk'中文字符:
s='ËÕÖÝÇàÌìÍøÂç¿Æ¼¼ÓÐÏÞ¹«Ë¾'
s=s.encode('ISO-8859-1').decode('gbk')
print(s)
输出中文名。
检测文件是否存在
from os.path import exists
if exists('c.txt'):
with open('c.txt','a') as f:
f.write('exist')
f.close()
else:
with open('c.txt','a') as f:
f.write('none')
f.close()
将时间戳数字转换成日期小时
time.time()获取当前时间戳。
datetime.datetime.fromtimestamp(tm)将数字转化为日期对象
strftime转化为可读字符串,YmdHMS年月日时分秒
import time,datetime
tm=int(time.time())
s=datetime.datetime.fromtimestamp(tm).strftime('%Y-%m-%d %H:%M:%S')
print(s)
输出:2018-10-09 07:48:52
字符串转为字典对象
适用于复制出来的headers
def str2obj(s, s1=';', s2='='):
li = s.split(s1)
res = {}
for kv in li:
li2 = kv.split(s2)
if len(li2) > 1:
res[li2[0]] = li2[1]
return res
headerstr='''
a: 111
b: 333
ccc
'''
headers = str2obj(headerstr, '\n', ': ')
print(headers)
输出:{'a': '111', 'b': '333'}
智能决策上手系列教程索引
每个人的智能决策新时代
如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~
END
网友评论