我们可以编写自己的模块,也可以使用大量的Python标准库模块和开源模块,站在巨人的肩上行动,正因为如此,使得当今python如此热门,今天就让我们来一起领略python开源库的魅力。

  • Python标准库常见模块

python解释器相关:sys

操作系统:os

json加载生成:json

正则表达式:re

随机数:random

多线程:multiprocessing

  • Python第三方开源库常见模块(需安装)

网页爬取:scrapy、requests、BeautifulSoup

WEB服务:django、flask

数据库:PyMySQL、redis

Excel读写:xlrd、xlwt

大数据:PySpark

数据计算:numpy、scipy

图表展示:matplotlib

机器学习:scikit-learn

深度学习:百度PaddlePaddle、谷歌TensorFlow

  • Python模块安装方法

pip安装

就是在cmd命令行使用pip命令安装

pycharm安装

File-setting--project interpreter--点击+号--搜索框输入模块名称并搜索--资源池中选中下载资源--点击install Package--OK

使用Anaconda版本Python(我用的就是)

该包已经预先包括了数据科学的几乎所有开源包,普通人搞数据分析完全可以了。

  • Python标准库sys和os介绍

sys模块

负责程序与python解释器的交互,提供函数和变量用于操控python的运行时环境

sys.argv 类型为list,命令行参数列表,第一个元素是脚本名称或路径

sys.path 类型为list,模块的搜索路径

它使用PYTHONPATH环境变量初始化

第一个元素是当前目录,意思是每次会首先搜索当前目录下的模块

用户在程序中可以自己修改sys.path,设置自己的模块搜索路径

sys.exit(n) 退出程序,n等于0代表正常退出,不等于0代表异常退出,在shell可以用$?获得退出值。

import sys# 打印当前文件路径for row in sys.argv:    print(row)print(sys.argv)print("#"*50)  # 打印分隔符# 打印模块搜索路径,第一个元素是当前目录for row in sys.path:    print(row)print("#"*50)  //打印分隔符sys.exit(0)
运行结果:D:\Anaconda3\python.exe D:/python/易灵--零基础Python课程资料/课程相关代码/test/ossys_test2/sys_test2.pyD:/python/易灵--零基础Python课程资料/课程相关代码/test/ossys_test2/sys_test2.py['D:/python/易灵--零基础Python课程资料/课程相关代码/test/ossys_test2/sys_test2.py']##################################################D:\python\易灵--零基础Python课程资料\课程相关代码\test\ossys_test2D:\python\易灵--零基础Python课程资料\课程相关代码\testD:\Anaconda3\python37.zipD:\Anaconda3\DLLsD:\Anaconda3\libD:\Anaconda3C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packagesD:\Anaconda3\lib\site-packagesD:\Anaconda3\lib\site-packages\win32D:\Anaconda3\lib\site-packages\win32\libD:\Anaconda3\lib\site-packages\Pythonwin##################################################Process finished with exit code 0

os模块

负责程序与操作系统交互,提供访问操作系统底层的接口

os.environ 字典类型,读取系统环境变量

os.remove(path) 删除文件

os.rename(src,dst) 重命名文件或目录,可实现文件移动

os.mkdir(dir) 创建目录

os.rmdir(dir) 删除目录,目录必须为空

os.listdir(path) 返回列表,列出目录下的文件和目录

os.path.basename(path) 提取路径参数中的文件名

os.path.dirname(path) 提取路径参数中的目录名

os.path.split(path) 拆分path为(目录名, 文件名)

os.path.splitext(path) 拆分path(文件名, 后缀名)

os.path.exists(path) 判断指定的文件或目录是否存在

os.path.isdir(path) 判断path参数是否是目录

os.path.isfile(path) 判断path参数是否是普通文件

In [7]: pwdOut[7]: 'C:\\Users\\Administrator'In [8]: import osIn [10]: os.remove("ttt.txt")In [11]: os.rename("aaa.txt","bbb.txt")In [14]: os.mkdir("new")In [15]: os.rmdir("new")In [19]: os.listdir("C:/Users/Administrator/abc")Out[19]: ['1.txt']In [20]: os.path.basename("C:/Users/Administrator/abc")Out[20]: 'abc'In [21]: os.path.dirname("C:/Users/Administrator/abc")Out[21]: 'C:/Users/Administrator'In [22]: os.path.split("C:/Users/Administrator/abc")Out[22]: ('C:/Users/Administrator', 'abc')In [26]: pwdOut[26]: 'C:\\Users\\Administrator'In [27]: os.path.splitext("result.txt")Out[27]: ('result', '.txt')In [28]: os.path.exists("new")Out[28]: FalseIn [29]: os.path.exists("data")Out[29]: TrueIn [31]: os.path.isdir("bbb")Out[31]: FalseIn [32]: os.path.isfile("bbb")Out[32]: FalseIn [33]: os.path.isfile("bbb.txt")Out[33]: True

实例操练:

提供目录名,实现目录下文件按后缀名整理。

"""按后缀名清理文件夹程序"""import sysimport osdef cleanup(dirpath):    """    对目录按照后缀名进行清理    步骤1:用字典按后缀名收集对应的文件    步骤2:如果后缀名的目录不存在,则创建    步骤3:移动文件到目标目录    :param dirpath:    :return:    """    # key:value = ext:list(fname)    ext_fnames = {}    for fname in os.listdir(dirpath):        fdir, fileext = os.path.splitext(fname)        # 取出.jpg前面的.        fileext = fileext[1:]        if fileext not in ext_fnames:            ext_fnames[fileext] = []        ext_fnames[fileext].append(fname)    for ext,fnames in ext_fnames.items():        ext_dir = "%s/%s"%(dirpath, ext)        if not os.path.isdir(ext_dir):            os.mkdir(ext_dir)        for fname in fnames:            old_fpath = "%s/%s"%(dirpath, fname)            new_fpath = "%s/%s"%(ext_dir, fname)            os.rename(old_fpath, new_fpath)if __name__ == "__main__":  # 使得能够import    if len(sys.argv) != 2:        raise Exception("please give the cleanup dir path")    dirpath = sys.argv[1]    if not os.path.isdir(dirpath):        raise Exception("%s is not a dir"%dirpath)    cleanup(dirpath)    print("success")

常用标准库_Python入门(五):常用标准库sys和os相关推荐

  1. python列表常用操作函数_Python入门——列表常用操作

    Python列表常用操作 准备 控制台输入ipython parallels@parallels-vm:~$ ipythonPython 2.7.12 (default, Dec 4 2017, 14 ...

  2. pythonturtle是标准库_Python入门自学最重要、最全标准库Turtle

    以下内容来自我的微信公众号<Python基础学习> 原文可以看<Python基础:Turtle库(01-03)>,原文排版更加的友好,欢迎读者关注!! ①turtle绘图体系: ...

  3. python升级第三方库_python一键升级所有第三方库

    import pip from subprocess import call for dist in pip.get_installed_distributions(): call("pip ...

  4. python连接opencv库_python环境下安装opencv库的方法

    注意:安装opencv之前需要先安装numpy,matplotlib等 一.安装方法 方法一.在线安装 1.先安装opencv-python pip install opencv-python --u ...

  5. python的opencv库_python环境下安装opencv库的方法

    注意:安装opencv之前需要先安装numpy,matplotlib等 一.安装方法 方法一.在线安装 1.先安装opencv-python pip install opencv-python --u ...

  6. python beautifulsoup库_Python爬虫系列:BeautifulSoup库详解

    点击上方蓝字关注"程序员Bob"呀~ 每个人的生命都是通向自我的征途,是对一条道路的尝试,是一条小径的悄然召唤.人们从来都无法以绝对的自我之相存在,每一个人都在努力变成绝对自我,有 ...

  7. python常用语音识别库_Python入门 —— 06语音识别

    Python 语音 实现语音操控的原理 语音操控分为语音识别和语音朗读两部分 我们使用speech模块实现语音模块(python 2.7) SAPI是微软Speech API , 是微软公司推出的语音 ...

  8. pandas是基于什么的python库_Python的五大常用库——numpy,pandas,matplotlib等

    Numpy Numpy 是python科学计算的基础包,本书大部分内容都基于numpy以及构建于其上的库.其功能有:快速高效的多维数组对象ndarray 用于对数组执行元素级计算以及直接对数组执行数字 ...

  9. python的爬虫库_python做爬虫常用库

    python做爬虫常用库 一.总结 一句话总结: urllib:一系列用于操作URL的功能. requests:基于 urllib 编写的,阻塞式 HTTP 请求库,发出一个请求,一直等待服务器响应后 ...

  10. python与excel常用的第三方库_Python读写Excel文件第三方库汇总

    常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...

最新文章

  1. java调用cd传输_Java调用Linux命令(cd的处理)
  2. 洛谷 P4475 巧克力王国 解题报告
  3. 雅加达poi_雅加达EE:干净的板岩
  4. 12.深度学习练习:Residual Networks(注定成为经典)
  5. Linux文件属性2——使用stat函数获取文件属性
  6. 绕固定坐标轴旋转与绕自身坐标轴旋转一致性证明
  7. JavaScript escape() 函数
  8. 没有流氓软件,只有流氓行为
  9. java定时任务设置为每天执行一次,首次还是好的,到第二天就不执行了的原因
  10. WWDC心愿单:新版OS X或将有这些变化
  11. Minidump方式保留程序崩溃现场
  12. 华为太极magisk安装教程_教程:如何升级太极内部的应用
  13. 如何搭建ti功放的软件调试环境
  14. 关于开发板不断eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 eth0: link down的问题
  15. 简单的C语言顺序结构例题介绍
  16. matlab 纵坐标变为百分比形势,“怎么把excel纵坐标改为百分数类型“excel中如何求百分比...
  17. 怎样设置图片大小php,php调整图片大小的方法
  18. DataTable 服务端模式 进行分页 排序搜索
  19. 计算机字体对于现代设计有何意义,创意字体在现代设计中的重要性
  20. centos安装mysql_centos如何安装mysql

热门文章

  1. js实现checkbox全选、不选与反选
  2. ASP.net MVC redis完整示例(含集合,哈希,sortedset)
  3. 为什么开发环境如此之乱
  4. NHibernate配置 使用经验
  5. 黑暗森林:知识图谱的前世今生
  6. IDL实现高分一号数据辐射定标TASK(二)
  7. android使用FFmpeg解码MP4中的音频并使用AudioTrack播放
  8. java静态类堆栈_Java回归学习-面向对象内存分析-堆栈
  9. 实现成长之路——SpringBean三:实例化Bean的姿势都有哪些?
  10. android MVC和MVP探讨