2020/5/24
前言:
我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数。在写一些系统脚本或者自动化运维脚本的时候经常会用到这个 os 库,所以这里做个整理,方便需要的时候或者需要的朋友查找学习,下面话不多说,来一起看看详细的介绍吧。
文章目录
- 前言:
- 常用指令OS
- 常用指令os.path/os.system
os库是Python标准库,包含几百个函数,常用路径操作、进程管理、环境参数等几类。os.path子库以path为入口,用于操作和处理文件路径。
- 路径操作:os.path子库,处理文件路径及信息
- 进程管理:启动系统中其他程序
- 环境参数:获得系统软硬件信息等环境参数
常用指令OS
1、os.sep
获取当前操作系统使用的目录分隔符,比如Windows就会得到\
而Linux就会得到/
os.name
获取当前操作系统,Windows是NT内核,所以会得到nt
,而Linux/Unix用户则会得到posix
2、os.getcwd()
获取当前工作目录,即当前python脚本工作路径。
3、os.getenv()
用来获取环境变量os.getenv('PATH')
4、os.environ
可以获取并修改环境变量
print(os.envrion['PATH'])
os.envrion += 'D:/testdir/bin/'
print(os.envrion['PATH')
5、os.listdir()
列出某目录下所有的目录和文件print(os.listdir())
6、os.remove()
删除文件os.remove('D:/text.file')
7、ox.system()
运行Shell或者CMD命令os.system('ifconfig')
8、os.linesep
获取当前平台使用的行终止符。例如,Windows使用\r\n
,linux使用\n
而Mac使用\r
。
9、os.path.split()
获取一个列表,list[0]是路径,list[1]是文件名
path = 'D://game/gtav/bin/gtav.exe'
print(os.path.split(path)[0])
print(os.path.split(path)[1])
输出结果
D:/game/gtav/bin
gtav.exe
10、os.path.isfile() 和 os.path.isdir()
判断路径是不是文件 / 目录
print(os.path.isfile('D:/game/gtav/bin/gtav.exe'))
print(os.path.isdir('D:/'))
运行结果
False
True
确保路径存在,不然只显示False
11、os.path.existe()
函数用来检验给出的路径是否真地存在
path = 'E:\\zhao_sri'
print(os.path.exists(path))
path = 'E:\\zhao_sri\\bin'
print(os.path.exists(path))
运行结果
True
False
12、os.chdir(dirname)
切换工作目录,相当于cd
的命令
os.chdir('E:\zhao_sri')
print(os.getcwd())
运行结果
E:\zhao_sri
13、os.path.getsize(name)
获取文件大小,以字节为单位
size = os.path.getsize('D:/Anaconda')
print(size/1024/1024/1024, 'GB')
运行结果
1.52587890625e-05 GB
14、os.path.abspath(name)
获取绝对路径,如果在 Python 工作目录下有一个文件file.txt,那么我就可以直接
open('file.txt'),也可以用该方法获得其绝对路径
print(os.path.abspath('file.txt'))
也可以用来规范路径字符串
print(os.path.abspath('D:/game\gtav\bin/gtav.exe'))
15、os.path.normpath(path)
专门用来规范路径
path = 'D:/test/sdf\zfb'
print(os.path.normpath(path))
运行结果
D:\test\sdf\zfb
16、os.path.splitext()
获取文件名和扩展名
path = '/home/shawn/hello.py'
print(os.path.splitext(path))
运行结果
('/home/shawn/hello', '.py')
17、os.path.join(path,name)
连接目录和文件名,可以不用自己添加分隔符,能减少bug率提升跨平台性
18、os.path.basename(path)
获取路径中的文件名
19、os.path.dirname(path)
获取路径中的目录名
常用指令os.path/os.system
import os #调用os库
import os.path as op #os.path 改名为 OP
import os.system as ost () #os.system改名为ost
op.abspath(path) # 返回path在当前系统中的绝对路径
op.normpath(path) # 归一化path的表示形式,统一用\\分隔路径
op.relpath(path) # 返回当前程序与文件之间的相对路径 (relative path)
op.dirname(path) # 返回path中的目录名称
op.basename(path) # 返回path中最后的文件名称
op.join(path, *paths) # 组合path与paths,返回一个路径字符串
op.exists(path) # 判断path对应文件或目录是否存在,返回True或False
op.isfile(path) # 判断path所对应是否为已存在的文件,返回True或False
op.isdir(path) # 判断path所对应是否为已存在的目录,返回True或False
op.getatime(path) # 返回path对应文件或目录上一次的访问时间
op.getmtime(path) # 返回path对应文件或目录最近一次的修改时间
op.getctime(path) # 返回path对应文件或目录的创建时间
op.getsize(path) # 返回path对应文件的大小,以字节为单位
ost(command) # 执行程序或命令command,在Windows系统中,返回值为cmd的调用返回信息
os.chdir(path) # 修改当前程序操作的路径
os.getcwd() # 返回程序的当前路径
os.getlogin() # 获得当前系统登录用户名称
os.cpu_count() # 获得当前系统的CPU数量
os.urandom(n) # 获得n个字节长度的随机字符串,通常用于加解密运算
本篇文章如果对你有帮助,那真是再好不过了。同时为个人笔记。文章内容有引用之处。因为本片内容是疫情时在家时做的。记不清引用的那位大佬的了。如侵请留言。
END!