Skip to content
This repository was archived by the owner on Aug 2, 2018. It is now read-only.

Files

Latest commit

 

History

History
168 lines (162 loc) · 13.4 KB

README.md

File metadata and controls

168 lines (162 loc) · 13.4 KB

主要内容


python常用模块

os模块

os.sep 可以取代操作系统特定的路径分割符。
os.name 字符串指示你正在使用的平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。
os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径。
os.getenv()os.putenv()函数分别用来读取和设置环境变量。
os.listdir() 返回指定目录下的所有文件和目录名。
os.remove() 函数用来删除一个文件。
os.system() 函数用来运行shell命令。
os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用’\n'而Mac使用'\r'
os.listdir(dirname) 列出dirname下的目录和文件
os.getcwd() 获得当前工作目录
os.curdir 返回当前目录(’.’)
os.chdir(dirname) 改变工作目录到dirname

os.path.abspath(path) 返回绝对路径
os.path.basename(path) 返回文件名
os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径。
os.path.dirname(path) 返回文件路径
os.path.exists(path) 路径存在则返回True,路径损坏返回False
os.path.lexists 路径存在则返回True,路径损坏也返回True
os.path.expanduser(path) 把path中包含的""和"user"转换成用户目录
os.path.expandvars(path) 根据环境变量的值替换path中包含的”$name””${name}”
os.path.getatime(path) 返回最后一次进入此path的时间。
os.path.getmtime(path) 返回在此path下最后一次修改的时间。
os.path.getctime(path) 返回path的大小
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误
os.path.isabs(path) 判断是否为绝对路径
os.path.isfile(path) 判断路径是否为文件
os.path.isdir(path) 判断路径是否为目录
os.path.islink(path) 判断路径是否为链接
os.path.ismount(path) 判断路径是否为挂载点()
os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径
os.path.normcase(path) 转换path的大小写和斜杠
os.path.normpath(path) 规范path字符串形式
os.path.realpath(path) 返回path的真实路径
os.path.relpath(path[, start]) 从start开始计算相对路径
os.path.samefile(path1, path2) 判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2) 判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) 判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path) 把路径分割成dirname和basename,返回一个元组
os.path.splitdrive(path) 一般用在windows下,返回驱动器名和路径组成的元组
os.path.splitext(path) 分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path) 把路径分割为加载点与文件
os.path.walk(path, visit, arg) 遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames 设置是否支持unicode路径名

sys模块

sys常用的有:

sys.argv 命令行参数List,第一个元素是程序本身路径
sys.modules.keys() 返回所有已经导入的模块列表
sys.exc_info() 获取当前正在处理的异常类,exc_typeexc_valueexc_traceback当前处理的异常详细信息
sys.exit(n) 退出程序,正常退出时exit(0)
sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
sys.version 获取Python解释程序的版本信息
sys.maxunicode 最大的Unicode
sys.modules 返回系统导入的模块字段,key是模块名,value是模块
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout 标准输出
sys.stdin 标准输入
sys.stderr 错误输出
sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix 返回平台独立的python文件安装的位置
sys.byteorder 本地字节规则的指示器,big-endian平台的值是’big’,little-endian平台的值是’little’
sys.copyright 记录python版权相关的东西
sys.api_version 解释器的C的API版本
sys.version_info Python解释器的版本信息
sys.displayhook(value) 如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__..指在python的交互式解释器里,’_'代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来
sys.getdefaultencoding() 返回当前你所用的默认的字符编码格式
sys.getfilesystemencoding() 返回将Unicode文件名转换成系统文件名的编码的名字
sys.setdefaultencoding(name) 用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出LookupError,这个函数只会被site模块的sitecustomize使用,一旦别site模块使用了,他会从sys模块移除
sys.builtin_module_names Python解释器导入的模块列表
sys.executable Python解释程序路径
sys.getwindowsversion() 获取Windows的版本
sys.stdin.readline() 从标准输入读一行,sys.stdout.write("a") 屏幕输出a

math 模块

math模块的函数如下:

0,常量

math.pi π = 3.141592…
math.e e = 2.718281…

1,数值计算函数

math.ceil(x) 返回≥x的最小整数
math.floor(x) 返回≤x的最大整数
math.copysign(x,y) 返回与y同号的x值
math.fabs(x) 返回x的绝对值
math.factorial(x) 返回x的阶乘,即x!,x必须为非负整数
math.fmod(x,y) 返回x对y取模的余数(x决定余数符号),与x%y不同(y决定余数符号)
例:

     math.fmod(100, -3)   -->  1.0
      math.fmod(-100, 3)   --> -1.0
      100 % -3    -->    -2
     -100 %  3    -->     2

math.frexp(x) 返回元组(m,e),根据 x = m*(2**e)
math.fsum(iterable) 返回数组的和,比内置函数sum要精确
math.isfinite(x) 若x是有限数,返回True
math.isinf(x) 若x是无穷大,返回True
math.isnan(x) 若x非数,返回True
math.ldexp(x,i) 返回x*(2**i)的结果
math.modf(x) 返回元组(fractional,integer),分别为x的小数部分和整数部分
math.trunc(x) 返回x的整数部分

2,乘方/对数函数

math.exp(x) 返回ex
math.expm1(x) 返回e
x - 1
math.log(x[,base]) 返回x的对数,base默认的是e
math.log1p(x) 返回x+1的对数,base是e
math.log2(x) 返回x关于2的对数
math.log10(x) 返回x关于10的对数
math.pow(x,y) 返回x**y
math.sqrt(x) 返回x的平方根

3,三角函数

math.sin(x) 返回x的正弦,x用弧度制表示
math.cos(x) 返回x的余弦
math.tan(x) 返回x的正切
math.asin(x) 返回x的反正弦,结果用弧度制表示
math.acos(x) 返回x的反余弦
math.atan(x) 返回x的反正切
math.atan2(y,x) 返回atan(y/x)
math.hypot(x,y) 返回sqrt(x*x + y*y)

4,角度,弧度转换函数

math.degrees(x) 弧度 –> 角度
math.radians(x) 角度 -> 弧度

5,双曲线函数

math.acosh(x) 返回x的反双曲余弦
math.asinh(x) 返回x的反双曲正弦
math.atanh(x) 返回x的反双曲正切
math.cosh(x) 返回x的双曲余弦
math.sinh(x) 返回x的双曲正弦
math.tanh(x) 返回x的双曲正切

6,特殊函数

https://docs.python.org/3/library/math.html

math.erf(x) Return the error function at x.
math.erfc(x) Return the complementary error function at x
math.gamma(x) Return the Gamma function at x.
math.lgamma(x) Return the natural logarithm of the absolute value of the Gamma function at x.

collections模块

Python拥有一些内置的数据类型,比如str,int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:

  1. namedtuple 生成可以使用名字来访问元素内容的tuple子类
  2. deque 双端队列,可以快速的从另外一侧追加和推出对象
  3. Counter 计数器,主要用来计数
  4. OrderedDict 有序字典
  5. defaultdict 带有默认值的字典

heapq模块

https://docs.python.org/2/library/heapq.html

这个模块(build-in)实现了一个堆的数据结构,完美的解决了Top-K问题,以后解决Top-K问题的时候,直接把这个模块拿来用就可以了
注意,默认的heap是一个小顶堆!

heapq模块提供了如下几个函数:

heapq.heappush(heap, item)把item添加到heap中(heap是一个列表)
heapq.heappop(heap) 把堆顶元素弹出,返回的就是堆顶
heapq.heappushpop(heap, item) 先把item加入到堆中,然后再pop,比heappush()再heappop()要快得多
heapq.heapreplace(heap, item)先pop,然后再把item加入到堆中,比heappop()再heappush()要快得多
heapq.heapify(x)将列表x进行堆调整,默认的是小顶堆
heapq.merge(*iterables)将多个列表合并,并进行堆调整,返回的是合并后的列表的迭代器
heapq.nlargest(n, iterable, key=None) 返回最大的n个元素(Top-K问题)
heapq.nsmallest(n, iterable, key=None)返回最小的n个元素(Top-K问题