@ds17
2017-10-30T08:21:06.000000Z
字数 5132
阅读 1434
Data_Science
\d:一个数字;
\w:一个字母或数字;
\s:一个空格;
\S:匹配任意非空字符;
.:一个任意字符;
*:任意个任意字符;
+:一个或以上个任意字符;
?:0个或1个任意字符
\d+?:加个问号→非贪婪匹配;
{n}:n个字符
{n,m}:n-m个字符
[]:一个范围。
在表达式上加(),第一个括号为第一组。
m.group(0) #原始字符串
m.group(1) #第一个字符串
info=re.findall(r'regx',pattern) #返回一个列表
info=re.finditer(r'regx',patterm) #返回一个match对象,只有match对象才具有group属性。
plt=re.findall(r'\"view_price\":\"[\d\.]*\"',html)
#返回匹配到的所有字符串的列表,例如['"view_price":"19.90"']
plt=re.findall(r'\"view_price\":\"([\d\.]*)\"',html)
#返回提取的字符串的列表,例如['19.90','25.20'}
re_telephone=re.compile(r'^(\d{3})\-(\d{3-8})$')
re_telephone.match(string)
找到字符返回找到位置索引,未找到返回-1。
r.request(url='https://www.baidu.com') #获得一个response对象
r.contend #获得response对象的二进制响应内容。
r.text #获得解码后的内容。
r.encoding #获得response对象解码方式
r.encoding='utf-8' #将response对象解码方式改为:utf-8
先得打开文件,在写入文件,已‘b’形式打开即以'b'形式写入。
with open(filename,'ab') as ff:
ff.write(bytes)
ff.close()
将request的响应以文件流的形式写入文件
with open(filename, 'ab') as fd: #ab:二进制形式追加写入
for chunk in r.iter_content(chunk_size):
fd.write(chunk)
库名:tqdm
UUID:Universally Unique Identifier,通用唯一识别码
URI:Uniform Resource Identifier
URN:
URI可以分为URL,URN或同时具备locators 和names特性的一个东西。
URN作用就好像一个人的名字,URL就像一个人的地址。
换句话说:URN确定了东西的身份,URL提供了找到它的方式。
import os
os.startfile(filename) #win下类似于双击操作。
200:请求成功
201:请求成功并创建一个了新资源
408:指示客户端没有在服务器准备等待的时间内生成请求
os.system('taskkill /IM dllhost.exe') #"/IM"前后各有一个空格,加上进程名
os.system('taskkill /F /IM dllhost.exe') #"/F"强制终止进程
进程名:任务管理器 → 应用程序 → 右击 转到进程
从xml文件得到dom对象(dom: document object model)
dom1=xml.dom.minidom.parse('xml file path')
从xml字符串的得到DOM对象
dom2=xml.dom.minidom.parseString(xmlString)
新建环境变量:PYTHONPATH,将值设置为库所在目录
r=requests.get('url') #requests得到json数据
data=r.json() #用json方法解码JSON数据。
#json: javasript object notation 轻量级数据交换格式,一种数据交换语言。
下载ZIP文件后可直接安装,下载时需注意对应的pycharm版本。
切换标签:ALT+LEFT/RIGHT
x=range(1,4) #只能取得:1,2,3。4是取不到的。
按标准,URL只允许一部分ASCII字符,其他字符非法。例如汉字就是非法的。
所以在进行HTTP请求时,将“非法字符”进行编码。
#python 3.x
from urllib import parse
parse.quote(str) #除了 -._/09AZaz ,都会进行编码
parse.quote_plus(str) #更激进,也会编码 /
一个任务就是一个进程,每个进程可以处理很多种事务,
即多个子任务,子任务成为线程(Tread)。
公司电脑pycharm通过git连接oschina/github提示端口错误,先修改pycharm的代理为公司默认代理设置,再更改git的代理设置。
git config --global http.proxy http://10.237.130.43:2375
git config --global https.proxy http://0.237.130.43:2375
git config --global http.sslverify false
另外在push到github选项中不勾选:Clone git repositories using
①在oschina/github上跟别建立repository,分别命名为r_name_os/r_name_gh。
②在本地建两个文件夹:osChina/GitHub。
③pycharm→VCS→check out from version control,分别将osChina/GitHub项目check out 到本地。
④分别为两个project。以GitHub为主进行工作commit后将修改的文件copy至osChina目录下,打开r_name_os项目commit and push。
NOTEST\
默认为:logging.WARNING
火狐安装Firebug,在面板上直接右键“导出本站点Cookie”,可得到一个txt文件。
大于号,小于号一般用mark,当表示大于、小于时,需要转义。\<>
获取ip地理位置,电话归属地:http://m.ip138.com/
网址缩短:http://suo.im/
pip list --outdated #查看过期库
python -m pip install --upgrade (lib name) #升级过期库
python - m pip install (lib name) #安装库
先安装wheel: pip install wheel
安装: jieba/wordcloud/scrapy ← twisted ← biopython
file=open(file_path,'r',newline='')
newline是用来控制文本模式之下,一行的结束字符。可以是None,’’,\n,\r,\r\n。
当在读取模式下,如果新行符为None,那么就作为通用换行符模式工作,意思就是说当遇到\n,\r或\r\n都可以作为换行标识,
并且统一转换为\n作为文本输入的换行符。当设置为空’’时,也是通用换行符模式工作,但不作转换为\n,输入什么样的,就保持原样全输入。
当设置为其它相应字符时,就会判断到相应的字符作为换行符,并保持原样输入到文本。
当在输出模式时,如果新行符为None,那么所有输出文本都是采用\n作为换行符。
如果设置为’’或者\n时,不作任何的替换动作。如果是其它字符,会在字符后面添加\n作为换行符。
import csv
file_path='file path'
file=open(file_path,'r+',newline='')
reader=csv.reader(file)
writer=csv.writer(file)
for line in reader():
print(line) #CSV文件每一行内容被转化为一个有序列表
writer.writerow(['1','2','3']) #在原文件末尾添加一行
file.close() #最后记得关闭文件
默认搜索路径获得:
import sys
print(sys.path) #已包含的搜索路径
sys.path.append('/Users/michael/my_py_scripts') #暂时性添加模块搜索路径
永久性修改:环境变量 PYTHONPATH
在变量名前加双下划线:'__';用单下滑线‘_’时仍然可以访问并修改。
class Student(object):
def __init__(self,name,age):
self.__name=name
self.__age=age
·
bob=Student('bab kaka',36)
bob._Student__name='richard jin'
bob.__name='new name' #运行后不会报错,因为解释器创建了一个新变量:bob.__name
双下划线:Python解释器对外把__name变量改成了_Student__name。可通过_Student__name访问。
利用msvcrt模块
import msvcrt
print(ord(msvcrt.getch())) #getch获得一个键盘输入,ord将其转换为ASCII值,通过判定特定的ASCII值或Enter来决定是实现按下特定按键后的操作。
print(eval('"书""包"'))
#书包
报错内容:import win32api ImportError DLL load failed
①需手动安装pywin32模块;
将\Lib\site-packages\pywin32_system32下所有文件复制到C:\Windows\System32
缺少c++ compiler 可去whl下载页面下载编译器
直接:pip install D:/python/ananconda3/wordcloud-1.3.1-cp36-cp36m-win_amd64.whl
只能写一维或二维的数据。
内建标准库:fnmatch
conda create --name tensorflow python=3.5 #创建新环境,指定python版本
activate tensorflow
pip install numpy
pip install tensorflow
conda info --envs #确认当前环境
conda remove -n en_name --all #删除环境
#返回默认环境
deactivate
activate root
activate tensorflow
python setup.py install
通过pypi安装的pyinstaller不支持python3.5+,需下载(GitHub)最新版手动安装。
pyinstaller -F -w gbk.py