Python虽然不是计算效率最高的编程语言,但是绝对是最全能的编程语言!没有之一!可以做计算、精美可视化数据、网络应用(爬个虫、做个网站神马的都不在话下)...还有现在最热或的数据挖掘和机器学习,Python都有很多有用的库可供调用!比如Numpy, Matplotlib, SciPy, 还有一个神一样的工具叫Jupyter-Notebook和Sphinx!那么在使用python的过程中会有一些常用的、可以兼顾效率和美观的一写库和一些常用的命令,列举于此,方便以后查找。
命令
utf-8编码:
# -*- coding: utf-8 -*-
终端775格式可直接运行:
#!/Users/zguo/.pyenv/shims/python
添加至第一行,就像通常的.sh文件开头的#!/usr/bin/bash
一个道理,目的是指定解析器文件操作类
import os
if(os.path.exists(path_csv)): #判断文件路径是否存在
name_csv = os.path.basename(path_csv) #获取文件名
path_csv = os.path.abspath(path_csv) #获取文件的绝对路径
path_father = os.path.abspath(os.path.dirname(path_csv) + os.path.sep + ".") #获取文件的父路径
- main函数 :与C/C++的main函数一样,接受option选项,可以方便的在终端直接运行,就像gmt一样的风格
import sys
from colored import fg, bg, attr
C_GREEN = fg('green')
C_RED = fg('red')
C_BLUE = fg('blue')
C_DEFAULT = attr('reset')
def usage(argv):
basename = argv[0].split('/')
basename = basename[len(basename)-1]
print("======================"+basename+"=======================")
print("Transform Surfer Grid data to netCDF format based gmt")
print("Zhikui Guo, 2018/1/8, GEOMAR")
print("[""Example""]: "+C_RED + basename+C_BLUE +
" my.grd")
print("=======================================================")
sys.exit(1)
def main(argv):
if(len(argv) != 3):
usage(argv)
exit(0)
num_run = argv[2]
prom = argv[1].split('.')[0]
logfile = 'log/log'+argv[2]
pidfile = 'log/pid'+argv[2]
# ...
if __name__ == '__main__':
sys.exit(main(sys.argv))
库
首先介绍库,然后在下面列举一些常用的代码。
基础库
- colored :提供了很多方便的函数用于终端显示文字颜色和背景颜色显示
from colored import fg, bg, attr
C_GREEN=fg('green')
C_RED=fg('red')
C_BLUE=fg('blue')
C_DEFAULT=attr('reset')
- console_progressbar:终端显示进度条
maxnum=555
pb = ProgressBar(total=maxnum,prefix=C_BLUE+'Progress: '+C_DEFAULT, suffix=' Completed'+C_DEFAULT, decimals=3, length=50, fill=C_GREEN+'#', zfill=C_DEFAULT+'-')
for i in range(0,maxnum):
pb.print_progress_bar(I+1)
- linecache:读取大的文本文件
AllData = linecache.getlines(filename)
#....
linecache .clearcache()
专业库
-
spacy:自然语言处理
如果出现无法加载语言包的错误,比如OSError: [E050] Can't find model 'en'.
,在终端用命令pip install -U spacy && python -m spacy download en
下载即可!
import spacy
nlp = spacy.load('en')
- NLTK:自然语言处理,分词,词性分析等
import nltk
# 2 分词并保存到文件
path_fenci=path_out+'/'+name_theme
fout=open(path_fenci+'_fenci.txt','w')
fout2=open(path_fenci+'_fenci_detail.txt','w')
for i in range(0,len(words_abstract)):
sentence=words_abstract[I]
tokens = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(tokens)
for kk in range(0,len(tokens)):
if('NN' in tagged[kk][1]):
fout.write('%s\n'% (tokens[kk].split(',')[0])) #只统计名词
fout2.write('%s\t%s\n'% (tagged[kk][0], tagged[kk][1])) #第一个是此,第二个是词性
fout.close()
fout2.close()