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!