(八)Python基础知识-OS模块

1、特性

上一章节学习了File文件操作,可以进行文件读写等操作,os相较于File对象的操作来说,能力得到进一步的延伸与扩展,OS更多的使用场景是对文件夹及文件的综合操作。
使用os模块时需要提前导入它

import os

2、常用函数

函数名描述
os.name属性,返回运行平台类型,比如对于Windows,它是’nt’,而对于Linux / Unix用户,它是’posix’
os.getcwd()得到当前工作目录,即当前Python脚本工作的目录路径
os.getenv(key)获取系统环境变量key对应的值,如果没有这个变量则返回none
os.listdir(path)列出路径下的文件或文件夹 ,仅一级子集,返回值类型为list
os.stat(filePath)获取文件属性
os.path.exists(filePath)判断文件是否存在
os.path.exists(folderPath)判断文件夹是否存在
os.path.isabs(path)判断路径是否为绝对路径
os.path.isdir(folderPath)判断是否为文件目录
os.path.isfile(filePath)判断是否为文件
os.path.getsize获取文件大小
os.path.split(filePath)分离文件名, 返回一个元组,第一个元素为文件路径,第二个元素为文件名
os.path.splitext(filePath)分离扩展名, 返回一个元组,第一个元素为文件路径+"\"+文件名称(去掉扩展名的文件名),第二个元素为扩展名
os.path.dirname(filePath)获取文件的路径
os.path.basename(myFilePath)直接获取文件名
os.rename(sPath,tPath)重命名文件夹或文件
os.remove(filePath)删除文件
os.rmdir(folderPath)删除文件夹
os.makedirs(folderPath)folderPath 可以是多级,递归创建目录
os.removedirs(folderPath)删除多个目录,注意只会删除一级一级为空的目录,且是会回溯删除父级为空的路径

3、案例

import os

# os帮助模块
# help(os)
# os.rename函数帮助模块
# help(os.rename)

# 比如对于Windows,它是'nt',而对于Linux / Unix用户,它是'posix'
print("正在使用的平台:", os.name)
# 函数得到当前工作目录,即当前Python脚本工作的目录路径
print("当前工作目录:", os.getcwd())
# 获取一个环境变量,如果没有这个变量则返回none
print("获取环境变量的值:", os.getenv("JAVA_HOME"))
# 设置一个环境变量 这里key,val 随便设置 win10测试失败
# os.putenv("PYTHON_TEST_HOME", "c\\xxx")

# 列出路径下的文件或文件夹 仅仅一级子集
list = os.listdir("D:" + os.sep + "python_workplace\\venv")
for p in list:
    print(p)

# 文件夹路径
rootFolderPath = "D:\\python_workplace\\venv"
# 文件路径
myFilePath = rootFolderPath + os.sep + "pyvenv.cfg"

print("获取文件属性:", os.stat(myFilePath))
print("判断文件是否存在:", os.path.exists(myFilePath))
print("判断文件夹是否存在:", os.path.exists(rootFolderPath))
print("判断路径是否为绝对路径:", os.path.isabs(".\\python\\"))
print("判断是否为文件目录:", os.path.isdir(rootFolderPath))
print("判断是否为文件:", os.path.isfile(myFilePath))
print("获取文件大小:", os.path.getsize(myFilePath))
# 返回一个元组
print("分离文件名:", os.path.split(myFilePath))
# 返回一个元组
print("分离扩展名:", os.path.splitext(myFilePath))
# 获取路径名:
print("获取路径名:", os.path.dirname(myFilePath))
# 获取文件名:
print("获取文件名:", os.path.basename(myFilePath))

# 当前路径下,如果不存在,则创建文件夹
if not os.path.exists(rootFolderPath + "\\Test"):
    os.mkdir(rootFolderPath + "\\Test")

# 在Test文件夹下创建一个文件
file = open(rootFolderPath + "\\Test\\a.txt", 'w')
file.flush()
file.close()

# ============以下语句只允许运行其中的一条,且从上往下的顺序放开执行,以便观察文件及文件夹的变化====================
# 重命名文件夹
# os.rename(rootFolderPath + "\\Test", rootFolderPath + "\\TestCopy")
# 重命名文件 其中 os.sep 可代替\\
# os.rename(rootFolderPath + "\\TestCopy\\a.txt", rootFolderPath + "\\TestCopy\\b.txt")
# 删除文件
# os.remove(rootFolderPath + "\\TestCopy\\b.txt")
# 删除单个目录
# os.rmdir(rootFolderPath + "\\TestCopy")
# 递归创建目录
# os.makedirs(rootFolderPath + "\\Test2\\Test22\\Test222\\Test2222")
# 删除单个目录
# os.rmdir(rootFolderPath + "\\Test2\\Test22\\Test222\\Test2222")
# 删除多个目录,注意只会删除一级一级为空的目录,是会回溯删除父级为空的路径
# os.removedirs(rootFolderPath + "\\Test2\\Test22\\Test222")

案例中的代码尽可能运行一次吧,尤其是文件夹的创建和删除必须要执行才有更加清晰的认识。
其中上面这段代码第52行后的输出结果没有在本文中打印出来,请读者按照代码中注释进行操作。

输出结果:
正在使用的平台: nt
当前工作目录: D:\python_workplace\venv
获取环境变量的值: C:\Program Files\Java\jdk1.8.0_231
Include
Lib
pyvenv.cfg
Scripts
Test
test.txt
TestFile.py
TestOs.py
获取文件属性: os.stat_result(st_mode=33206, st_ino=1688849860419383, st_dev=83458, st_nlink=1, st_uid=0, st_gid=0, st_size=112, st_atime=1583551674, st_mtime=1583551674, st_ctime=1583550374)
判断文件是否存在: True
判断文件夹是否存在: True
判断路径是否为绝对路径: False
判断是否为文件目录: True
判断是否为文件: True
获取文件大小: 112
分离文件名: ('D:\\python_workplace\\venv', 'pyvenv.cfg')
分离扩展名: ('D:\\python_workplace\\venv\\pyvenv', '.cfg')
获取路径名: D:\python_workplace\venv
获取文件名: pyvenv.cfg

4、总结

本案例操作文件新增删除比较多,需要读者自行动手放开注释运行,观察文件夹及文件变化。
os模块包括非常多的文件操作,本文罗列了实践过的一些常用的函数,更多的函数操作可以查看官方文档,非常之多。包括各种平台的函数操作都是有一些区别的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值