Python OS&SYS模块

os模块

使用os模块时,不需要考虑平台差异,解释器会帮大家选择正确的系统支持,可以对进程和进程运行环境进行管理;该模块还可以处理大部分文件系统操作,比如删除重命名 文件,遍历目录树 ,以及管理文件访问权限。

os模块主要有以下几种 :

  • posix (类unix操作系统)
  • nt (win)
  • mac (旧版本的MacOs)
  • dos (DOS)

  • ossys

os负责程序与操作系统的交互

sys负责程序与解释器的交互

  • os.pathsys.path

sys.path是PATH环境变量

os.path是os模块下的子模块,提供了一些关于路径处理的函数


os模块常用函数

  • 输出字符串指示正在使用的平台
python 复制代码
>>> os.name
'nt'

  • 得到当前工作目录(就是你的进程所工作的目录),即当前脚本工作路径
lua 复制代码
>>> os.getcwd()
'C:\\Users\\Administrator'

运行目录:执行程序时的路径

工作目录:程序运行时,程序中我们要操作其他文件时使用的的一系列相对路径(相对路径需要参照),工作目录可在程序运行时更改


  • 返回指定目录下的所有文件和目录名的一个列表,但是并没有列出来什么是目录,什么是文件。
python 复制代码
>>> os.listdir()
>>> os.listdir()
[ '桌面', '下载', '模板', '公共', '文档', '音乐', '图片', '视频']
#结果为列表,但是并没有列出谁是目录,谁是文件

  • 删除 指定文件,文件不存在则报错
python 复制代码
>>> os.remove('1.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'

  • 删除 指定目录
python 复制代码
>>> os.remove('桌面')
#删除桌面目录

  • 创建目录
python 复制代码
>>> os.mkdir('桌面')
#创建目录名为桌面

  • 递归创建目录
python 复制代码
>>> os.makedirs('a/b/c')

  • 执行shell命令
python 复制代码
>>> os.system('su rm -rf /*')
#四大皆空

  • 改变工作目录
python 复制代码
>>> os.getcwd()
'C:\\Users\\Administrator'
>>> os.chdir('C:\\Users')
>>> os.getcwd()
'C:\\Users'

  • 改变文件或目录的权限
python 复制代码
>>> os.chmod('1.txt',445)
>>> os.system('ls -l 1.txt')
-rw-rwxr-x 1 root root 0 1月  19 11:42 1.txt
0

os.path模块常用函数

  • 返回文件或目录的绝对路径,不会检查文件或目录是否存在,只是拼接当前工作目录
python 复制代码
>>> os.path.abspath('1.txt')
'/root/1.txt'

  • os.path.split('file_path')
    • 将路径分隔成目录和文件名,并以一个元组返回
    • 不会检查是否存在该文件或目录
python 复制代码
>>> os.path.split('/root/1.txt')
('/root', '1.txt')

  • os.path.basename('path'):
    • 返回路径最后的文件名
    • 如果后面还有\ / 那么返回一个空字符串
    • 不会检查是否存在该文件或目录
python 复制代码
>>> os.path.basename('/root/1.txt')
'1.txt'

  • os.path.exists('file_path'):
    • 如果路径存在,则返回True,反之返回False
    • 与上面的函数不同,他就是检查这个路径是否存在
python 复制代码
>>> os.path.exists('/root/2.txt')
False

  • os.path.join('file_path','file_name'):
    • 路径拼接
    • 不会检查是否存在该文件或目录
python 复制代码
>>> os.path.join('/root','abc')
'/root/abc'
>>> os.path.join('root','abc')
'root/abc'

  • os.path.isdir('name'):
    • 判断是否为目录,返回值为bool
python 复制代码
>>> os.path.isdir('/root')
True
>>> os.path.isdir('1.txt')
False

  • os.path.isfile('name'):
    • 判断是否为文件,返回值为bool
python 复制代码
>>> os.path.isfile('/root')
False
>>> os.path.isfile('1.txt')
True

  • os.path.islink('name'):
    • 判断是否是链接,返回值为bool
python 复制代码
>>> os.path.islink('1.txt')
False
>>> os.path.islink('/usr/bin/python3')
True
#ln -s 是我们在linux下创建连接的命令,类似win下的快捷方式

  • os.path.getsize('path'):
    • 返回文件大小
    • 如果文件不存在,抛出异常
python 复制代码
>>> os.path.getsize('1.txt')
0
>>> os.path.getsize('2.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/python3/lib/python3.6/genericpath.py", line 50, in getsize
    return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: '2.txt'

sys模块

sys模块提供访问解释器使用或维护的变量,和与解释器进行交互的函数

通俗来讲,sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python运行时的环境

  • 获取命令行参数
python 复制代码
sys.argv

当从外界调用脚本传入参数,可以通过sys.argv这个列表获取得到,默认列表的第一个值为本身的文件名

  • 返回所有已导入的模块
python 复制代码
sys.modules.keys()
  • 获取当前执行环境的平台
python 复制代码
sys.platform
  • 获取环境变量
python 复制代码
sys.path
  • 标准输入、输出、出错
python 复制代码
sys.stdout
sys.stdin
sys.stderr

输入输出的重定向

python 复制代码
with open("1.txt",'wb') as fp:
  	sys.stdout = fp
    sys.stdin = fp
print('hello world') # fp.write()
fp.read() # input()
  • 中途退出程序
python 复制代码
sys.exit(0)
# 0表示正常退出;n不为0时,引发SystemExit异常
相关推荐
程序员JerrySUN21 分钟前
TensorFlow:从历史到应用
人工智能·python·tensorflow
太虚32 分钟前
备赛蓝桥杯-Python-Day1-基础语法回顾
python·蓝桥杯
衫水33 分钟前
1.FastAPI简介与安装
开发语言·python·fastapi
ningmengjing_35 分钟前
django小案例-2
后端·python·django
蹦蹦跳跳真可爱5891 小时前
Python----计算机视觉处理(Opencv:ROI图像切割)
人工智能·python·opencv·计算机视觉
小小鱼er1 小时前
python flask项目架构搭建
python·flask
小白学大数据1 小时前
Superagent 异步请求:如何处理复杂的 HTTP 场景
开发语言·网络·python·网络协议·http
SomeB1oody1 小时前
【Python机器学习】3.2. 决策树理论(进阶):ID3算法、信息熵原理、信息增益
python·算法·决策树·机器学习
知舟不叙2 小时前
机器学习——深入浅出理解朴素贝叶斯算法
人工智能·python·算法·机器学习
草明2 小时前
python 操作 mongodb 输出执行命令的日志
开发语言·python·mongodb