一、os库基本介绍

os库提供通用的、基本的操作系统交互功能

- os库是Python标准库,包含几百个函数
- 常用路径操作、进程管理、环境参数等几类
  • 路径操作:os.path子库,处理文件路径及信息
  • 进程管理:启动系统中其他程序
  • 环境参数:获得系统软硬件信息等环境参数

二、os库之路径操作

os.path子库以path为入口,用于操作和处理文件路径

import os.path
        或
import os.path as op

函数

描述

os.path.abspath(path)

返回path在当前系统中的绝对路径>>> os.path.abspath( "file.txt" ) ===> 'C:\\Users\\Tian Song\\Python36-32\\file.txt'

os.path.normpath(path)

归一化path的表示形式,统一用\\分隔路径

>>> os.path.normpath( "D://PYE//file.txt" ) ===> 'D:\\PYE\\file.txt'

os.path.relpath(path)

返回当前程序与文件之间的相对路径(relative path)

>>>os.path.relpath( "C://PYE//file.txt" ) ===> '..\\..\\..\\..\\..\\..\\..\\PYE\\file.txt'

os.path.dirname(path)

返回path中的目录名称

>>> os.path.dirname( "D://PYE//file.txt" ) ===> 'D://PYE'

os.path.join(path,*paths)

组合path与paths,返回一个路径字符串。

>>> os.path.join( "D:/", "PYE/file.txt") ===> 'D:/PYE/file.txt'

os.path.exists(path)

判断path对应文件或目录是否存在,返回True或False。

>>> os.path.exists( "D://PYE//file.txt" ) ===> False

os.path.isfile(path)

判断path所对应是否为已存在的文件,返回True或False。

>>> os.path.isfile( "D://PYE//file.txt" ) ===> True

os.path.isdir(path)

判断path所对应是否为已存在的目录,返回True或False。

>>> os.path.isdir( "D://PYE//file.txt") ===> False

os.path.getatime(path)

返回path对应文件或目录上一次的访问时间。

>>> os.path.getatime( "D:/PYE/file.txt" ) ===> 1518356633.7551725

os.path.getmtime(path)

返回path对应文件或目录最近一次的修改时间。

>>> os.path.getmtime( "D:/PYE/file.txt" ) ===> 1518356633.7551725

os.path.getctime(path)

返回path对应文件或目录的创建时间。

>>> time.ctime(os.path.getctime( "D:/PYE/file.txt")) ===> 'Sun Feb 11 21:43:53 2018'

os.path.getsize(path)

返回path对应文件的大小,以字节为单位。

>>>os.path.getsize( "D:/PYE/file.txt" ) ===> 180768

三、os库之进程管理

os.system(command)

  • 执行程序或命令command
  • 在Windows系统中,返回值为cmd的调用返回信息。
import os
os.system("C:\\Windows\\System32\\calc.exe")
>>>
0
import os
os.system("C:\\Windows\\System32\\mspaint.exe D:\\PYECourse\\grwordcloud.png")
>>>
0

四、os库之环境参数

函数

描述

os.chdir(path)

修改当前程序操作的路径

os.chdir("D:")

os.getcwd()

返回程序的当前路径

os.getcwd() ===> 'D:\\'

os.getlogin()

获得当前系统的cpu数量。

os.cpu_count() ===> 8

os.urandom(n)

获得n个字节长度的随机字符串,通常用于加解密运算。

os.urandom(10) ===> b'7\xbe\xf2!\xc1=\x01gL\xb3'

五、实例14: 第三方库自动安装脚本

  • 需求:批量安装第三方库需要人工干预,能否自动安装?
  • 自动执行pip逐一根据安装需求安装

库名

用途

pip安装指令

NumPy

N维数据表示和运算

pip install numpy

Matplotlib

二维数据可视化

pip install matplotlib

PIL

图像处理

pip install pillow

Scikit-Learn

机器学习和数据挖掘

pip install sklearn

Requests

HTTP协议访问及网络爬虫

pip install requests

Jieba

中文分词

pip install jieba

Beautiful Soup

HTML和XML解析器

pip install beautifulsoup4

Wheel

Python第三方库文件打包工具

pip install wheel

PyInstaller

打包Python源文件为可执行文件

pip install pyinstaller

Django

Python最流行的Web开发框架

pip install django

Flask

轻量级Web开发框架

pip install flask

WeRoBot

微信机器人开发框架

pip install werobot

SymPy

数学符号计算工具 pip

install sympy

Pandas

高效数据分析和计算

pip install pandas

Networkx

复杂网络和图结构的建模和分析

pip install networkx

PyQt5

基于Qt的专业级GUI开发框架

pip install pyqt5

PyOpenGL

多平台OpenGL开发接口

pip install pyopengl

PyPDF2

PDF文件内容提取及处理

pip install pypdf2

docopt

Python命令行解析

pip install docopt

PyGame

简单小游戏开发框架

pip install pygame

#BatchInstall.py
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests","jieba","beautifulsoup4","wheel","networkx","sympy","pyinstaller","django","flask","werobot","pyqt5","pandas","pyopengl","pypdf2","docopt","pygame"}
try:
    for lib in libs:
        os.system("pip install " + lib)
    print("Successful")
except:
    print("Failed Somehow")

举一反三

  • 编写各类自动化运行程序的脚本,调用已有程序
  • 扩展应用:安装更多第三方库,增加配置文件
  • 扩展异常检测:捕获更多异常类型,程序更稳定友好