热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

常用标准库_Python入门(五):常用标准库sys和os

我们可以编写自己的模块,也可以使用大量的Python标准库模块和开源模块,站在巨人的肩上行动,正因为如此,使得当今pytho

我们可以编写自己的模块,也可以使用大量的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命令安装

dcb77bed7cea9fcdf450ef7f83198467.png

pycharm安装

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

68c64dd7fcdc54b1c19a479d82b0e1db.png

12d9bfca15d18c8da63bdf0984dd066a.png

22bc75a9b2f1269aa43b622e693ea415.png

使用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

实例操练:

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

9d4ca6c0cfb405520bbb9302561938e0.png

"""按后缀名清理文件夹程序"""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")

596168432c800fd42f937cd330033e54.png



推荐阅读
author-avatar
莱茵河泮的独奏_586
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有