用于记录Python的工具知识点
pip 相关
pip list
列出pip安装的所有包pip list --outdated
列出可更新的包pip install somepackage
pip uninstall somepackage
pip install --upgrade somepackage
pip install pip-review
、pip-review --local --interactive
更新所有的包
另外pip默认源,有些时候确实很慢,建议更改为国内源,比如科大,清华
```
mkdir ~/.pip
sudo vim ~/.pip/pip.conf
#加入下面行
[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple
```
自动生成和安装requirements.txt依赖
在我们的Python项目里经常会添加requirements.txt
文件,里面记录了当前程序的所有依赖包及其精确版本号。主要用于重新构建项目所需要的运行环境依赖。requirements.txt可以通过pip命令自动生成和安装
- 生成requirements.txt文件
pip freeze > requirements.txt
- 安装requirements.txt依赖
pip install -r requirements.txt
virtualenv相关
virtualenv是管理不同Python环境的工具,这里介绍如何建立一个keras环境
-
首先安装该包
pip install virtualenv
-
建立虚拟环境目录
mkdir $HOME/.virtualenvs
-
在该目录内建立keras环境
virtualenv keras
-
启动运行keras环境
source keras/bin/activate
-
停止运行 deactivate
-
如果没有启动虚拟环境,系统也安装了pip工具,那么
pip install ..
将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:export PIP_REQUIRE_VIRTUALENV=true
-
如下图所示步骤:
至此已经结束,但是每次运行keras都要
source /../..activate
是不是有点费事呢,下面使用virtualenvwrapper工具辅助管理虚拟环境 -
安装该包
sudo pip install virtualenvwrapper
-
在~/.bashrc中添加行:
export WORKON_HOME=$HOME/.virtualenvs
-
在~/.bashrc中添加行:
source /usr/local/bin/virtualenvwrapper.sh
-
运行:
source ~/.bashrc
-
列出所有虚拟环境
workon
-
启动运行虚拟环境
workon keras
-
如下步骤
-
删除虚拟环境
rmvirtualenv keras
-
可能遇见问题:
- bash: /usr/local/bin/virtualenvwrapper.sh: 没有那个文件或目录
解决方案:找到virtualenvwrapper.sh
文件位置,然后更新~/.bashrc
- no module name virtualenvwrapper
解决方案:sudo vim ~/.bashrc
重新添加环境变量添加内容如下:
完整变量如图export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
更新一下:source ~/.bashrc
- bash: /usr/local/bin/virtualenvwrapper.sh: 没有那个文件或目录
Jupyter notebook
jupyter notebook 可谓是神器,虽然做大型工程会有点吃力,不过确实很方便使用
pip install jupyter
####有趣的功能简介:
- 播放音频
from IPython.display import Audio
Audio(url="http://www.nch.com.au/acm/8k16bitpcm.wav")
from IPython.display import YouTubeVideo
YouTubeVideo('sjfsUzECqK0')
时间相关
- time
#获取当前时间,时区
>>>import time
>>>time.time() #当前时间(距离1970年1月1日 00:00:00的秒数,即时间戳)
1507705104.837813
>>>time.localtime()
time.struct_time(tm_year=2017, tm_mon=10, tm_mday=11, tm_hour=14, tm_min=43, tm_sec=8, tm_wday=2, tm_yday=284, tm_isdst=0)
#输出解释:year,month (1-12),day (1-31),hours (0-23),minutes (0-59),seconds (0-59),weekday (0-6, Monday is 0),Julian day (day in the year, 1-366),DST (Daylight Savings Time) ,flag (-1, 0 or 1) 是否是夏令时
#Normal format
>>>ISOTIMEFORMAT='%Y-%m-%d %X'
>>>time.strftime(ISOTIMEFORMAT, time.gmtime(time.time())) # 零时区时间
'2017-10-11 06:49:37'
>>>time.strftime(ISOTIMEFORMAT, time.localtime(time.time())) # 本时区时间
'2017-10-11 14:38:29'
>>>time.timezone/3600 #当前时区
-8
#时间转时间戳
>>>dt = "2017-10-11 06:49:37"
>>>timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S") #转换成时间数组
>>>timestamp = time.mktime(timeArray) #转换成时间戳
>>>print (timestamp)
1507675777.0
python 常用字符集合
import string
string.ascii_letters
Out: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.ascii_lowercase
Out: 'abcdefghijklmnopqrstuvwxyz'
string.ascii_uppercase
Out: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
Istring.digits
Out: '0123456789'
string.punctuation
Out: '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
string.whitespace
Out: '\t\n\x0b\x0c\r '
局域网传输工具
# 终端下打开文件所在目录
python -m SimpleHTTPServer
默认端口为8000,此时与你同在一个局域网的设备就能通过你的ip:8000从你这下载文件了
中文转拼音
from xpinyin import Pinyin
# default splitter is `-`
p = Pinyin()
print (p.get_pinyin(u"合肥"))
print (p.get_pinyin(u"合肥", show_tone_marks=True))
print (p.get_pinyin(u"合肥", ''))
print (p.get_pinyin(u"合肥", ' '))
print (p.get_initial(u"合"))
print (p.get_initials(u"合肥"))
print (p.get_initials(u"合肥", u''))
python emoji表情
发现了一个比较有意思的库
from emoji import emojize
print(emojize(":sushi:"+' '+":thumbs_up:"+' '+":ghost:"+' '+":boy:"+' '+":man:"+' '+":woman:"))
输出如下:
并附上emoji各表情对应名称的链接
数据处理小技巧
- Pandas过滤dataframe中包含特定字符串的数据
在实际应用过程中使用in
或者其他办法也可以,在这里介绍contains
- 列表解析