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异常
相关推荐
Cha0DD28 分钟前
【由浅入深探究langchain】第二十集-SQL Agent+Human-in-the-loop
人工智能·python·ai·langchain
Cha0DD29 分钟前
【由浅入深探究langchain】第十九集-官方的SQL Agent示例
人工智能·python·ai·langchain
智算菩萨2 小时前
【Tkinter】4 Tkinter Entry 输入框控件深度解析:数据验证、密码输入与现代表单设计实战
python·ui·tkinter·数据验证·entry·输入框
七夜zippoe2 小时前
可解释AI:构建可信的机器学习系统——反事实解释与概念激活实战
人工智能·python·机器学习·可解释性·概念激活
YuanDaima20485 小时前
[CrewAI] 第15课|构建一个多代理系统来实现自动化简历定制和面试准备
人工智能·python·面试·agent·crewai
WHS-_-20226 小时前
Python 算法题学习笔记一
python·学习·算法
码界筑梦坊6 小时前
353-基于Python的大湾区气候数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计
如何原谅奋力过但无声6 小时前
【chap11-动态规划(上 - 基础题目&背包问题)】用Python3刷《代码随想录》
数据结构·python·算法·动态规划
云姜.7 小时前
JSON Schema使用
python·json
Sunshine for you7 小时前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python