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异常
相关推荐
不爱吃山楂罐头4 分钟前
第三十三天打卡复习
python·深度学习
Dxy123931021637 分钟前
DrissionPage 性能优化实战指南:让网页自动化效率飞升
运维·爬虫·python·性能优化·自动化
蹦蹦跳跳真可爱5891 小时前
Python----目标检测(《SSD: Single Shot MultiBox Detector》论文和SSD的原理与网络结构)
人工智能·python·深度学习·神经网络·目标检测·计算机视觉
LeonDL1681 小时前
HALCON 深度学习训练 3D 图像的几种方式优缺点
人工智能·python·深度学习·3d·halcon·halcon训练3d图像·深度学习训练3d图像
慧都小妮子2 小时前
跨平台浏览器集成库JxBrowser 支持 Chrome 扩展程序,高效赋能 Java 桌面应用
开发语言·python·api·jxbrowser·chrome 扩展程序
tanyyinyu3 小时前
Python函数参数详解:从位置参数到灵活调用的艺术
运维·开发语言·python
qq_214782613 小时前
mac下通过anaconda安装Python
python·macos·jupyter
junyuz5 小时前
Dify docker内网部署常见问题记录
python·docker
@HNUSTer5 小时前
Python数据可视化科技图表绘制系列教程(一)
python·数据可视化·科技论文·专业制图·科研图表
reasonsummer5 小时前
【办公类-48-04】202506每月电子屏台账汇总成docx-5(问卷星下载5月范围内容,自动获取excel文件名,并转移处理)
python·excel