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

我们可以编写自己的模块,也可以使用大量的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]: False
In [29]: os.path.exists("data")Out[29]: True
In [31]: os.path.isdir("bbb")Out[31]: False
In [32]: os.path.isfile("bbb")Out[32]: False
In [33]: os.path.isfile("bbb.txt")Out[33]: True

实例操练:

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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值