Python3 写入csv文件每行数据后都多一空行 问题解决

Python3处理好的数据导出csv文件,需要做到以下两点才能正确处理:
1. 以w模式而不是wb模式打开
2. 加上newline=”

正确代码如下:

# 导出csv文件代码片段:
with open('mails.csv', 'w', newline='') as csvfile:
wresource = csv.writer(csvfile, dialect='excel')
wresource.writerow(['发件时间', '发件人', '邮件主题'])
wresource.writerows(rs)

原因分析:
newline=” suppresses text mode newline handling. On Windows, failing to do this will write \r\r\n file line endings instead of the correct \r\n. This is mentioned in the 3.X csv.reader documentation only, but csv.wr[……]

继续阅读 »

Python 正则表达式处理 邮件收件人信息

直接上代码

>>> import re
>>> email = '"=?gb2312?B?wfsD98D7?=" <abc@qq.com>'
# 匹配‘<’开头‘>’结尾的字符串,也就是需要的邮件地址
>>> r1 = r'<(.+?)>'
>>> email1 = re.search(r1,email)
>>> print(email1)
<_sre.SRE_Match object; span=(24, 36), match='<abc@qq.com>'>
>>> print(email1.group())
<abc@qq.com>
# group(0)等同于group(),不填写参数默认返回group(0),也就是匹配的整个字符串
>>> print(email1.group(0))
<abc@qq.com>
>>> print(email1.group[......]

继续阅读 »

Python 列表(list)&元组(tuple)切片索引

Python中的元组&索引切片操作时概念与PHP之类的概念不太一致:

>>>list1 = ['1','2','3','4','5']
>>>list1[0:3]
#从索引是0的元素开始截取,直到索引为3停止,但**不包括**索引3。
['1','2','3']
[……]

继续阅读 »

配置PyCharm使用系统默认的Python环境

  在PyCharm下不能直接使用pip install的包,查了一下原来PyCharm自带了一套的Python环境,包括pip包系统,需要在项目配置里设置一下Python的路径,选择系统默认安装Python即可,具体:
  打开PyCharm,依次点选File->Settings->Project Interpreter->设置为你的Python路径 即可。[……]

继续阅读 »

Python 3.6 模块安装错误 “error: Microsoft Visual C++ 14.0 is required…”问题解决

在pip install 安装词云时遇到错误:error: Microsoft Visual C++ 14.0 is required.按照以下方案解决:
1. 下载whl文件
访问http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud,
下载wordcloud-1.4.1-cp36-cp36m-win_amd64.whl到本地,选对Python版本和体系结构(32位还是64位)
2. 进到下载目录,按住shift点鼠标右键,进入CMD,运行命令安装即可

pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
[……]

继续阅读 »

Python3 函数返回值True/False

学习笔记,记录一下:
首先Python的True 或者False是区分大小写的;进一步讲Python是大小写敏感的
其次类似于PHP的的写法,Python对于if条件判断也有很简洁的写法:

return True if a > b else False
#更简洁
return [False,True][a > b]
#对比PHP,采用三元运算符
return a>b?True:False
[……]

继续阅读 »

Python 将两个长度相同的list合并为一一对应的字典dict

  1. 先准备俩长度相同的list

list1 = ['身高','体重','凶围']
list2 = ['170cm','55kg','34D']

  1. 用zip()函数把俩list中的元素形成一个个元组

list3 = zip(list1,list2)
[('身高','170cm'),('体重','55kg'),('凶围','34D')]

  1. 形成字典dict

dict( (name,value) for name,value in list3)

  1. 参考
    1 2

[……]

继续阅读 »

破解读取安卓版微信本地数据库

1.获取数据库文件
微信采用了sqlite作为数据库,第一步需要把数据库文件拿到手。首先在系统root的前提下,用root explorer(RE浏览器)进入目录 /data/data/com.tencent.mm/MicroMsg/微信号文件夹/,这个微信号文件夹是一长串数字,如果机器登录过多个微信帐号,那么这个文件夹会有多个,进入看一眼照片之类的就可以判断选择哪个,复制出来结尾为.db的文件,聊天记录存在EnMicroMsg.db这里,还有一些其他的db文件可选。

2.解密数据库
微信数据库文件采取了加密,首先需要解密之后,才能用sqlite相关工具和接口进行读取和查询
– 密码规则
这方面介绍很多,目前为止规则也没有变化(对腾讯来说改动加密规则影响太大成本太高),如下:
大写的IMEI + UIN 进行MD5加密 取32位小写 的前7位就是破解数据库的密码
其中IMEI在手机拨号界面按*#06#,弹出的俩IMEI号,记下第一个;我的手机IMEI是纯数字,不存在大小写;UIN一般在/data/data/com.tencent.mm/shared_prefs/aunt_info_[……]

继续阅读 »

在12306帮未通过核验的联系人网上购票

最佳解决办法(不用跑去火车站&代售点,亲测有效):

帮这个联系人注册一个12306的账号,这个过程需要填写他的身份证和手机号码,并通过手机号码验证(目前是发送999到12306,然后填写收到的验证码)这样就完成核验了(操作完就显示手机通过核验,过一段时间大概半个小时左右,身份也通过核验)。此后你可以用自己的账号或者他的账号给他买票。

感谢知乎匿名网友的经验,免了去火车站折腾一趟![……]

继续阅读 »

斐讯 K3_V21.6.11.58 刷官改固件

趁着京东1000-200的东风,终于上了K3的车,查了半天打算上官改固件,主要看重官方的无线信号强度和稳定性。出厂版本K3_V21.6.11.58,官方改了算法,激活TELNET的工具在该版本无效,而且封堵了降级的途径,基本思路就是降级到K3_V21.5.37.246版,然后打开telnet,进入系统shell下直接刷机。

降级参考 [k3] [20180128] K3_V21.6.11.58 简单降级大招,直刷降级,最新出笼!

降级之后刷机参考 【教程】斐讯K3 V21.6.8.46及官方260以上版本,简单粗暴刷官改固件[……]

继续阅读 »