在准备编写selenium相关的博客之前(即使网上有很多相关的selenium模块的介绍),还是带着自己复习一下os模块的相关操作,毕竟这个模块还是挺重要的,无论写什么都绕不开这个模块。
增:首先你得创建一个目录为以后的删除打个底
import os
# os.makedirs
# path可以为绝对路径,也可以为相对路径
os.makedirs(r'D:\python代码\os操作\demo')
# 相对路径,则是在当前操作的.py文件同级创建指定路径
os.makedirs(r'os操作\demo')
# 注意:假如该路径下已有同名文件则会报OSError
# 在默认情况下,exist_ok默认为False,如重复创建则会报错
os.makedirs(r'os操作\demo', exist_ok=True) # 无则增,有增不操作
删:删除文件/目录
import os
# os.py
# os.remove(): 用于删除指定路径下的指定文件,path也可以为绝对路径和相对路径
# “D:\python代码\os操作\demo\”该路径已经创建完毕,并在demo文件夹下创建一个1.py文件
os.remove(r'D:\python代码\os操作\demo\1.py')
# 有则删除、无则报错:(FileNotFoundError)
# os.removedirs():用于删除指定的多级目录,但必须该目录下为空目录。有文件则报错:OSError
os.removedirs(r'D:\python代码\os操作\demo')
# nt.py
# os.unlink():此方法不属于os.py文件,而是在nt.py文件中
os.unlink(r'D:\python代码\os操作\demo\1.py') # 在windows上效果与os.remove()相同,二者具体的区别在Unix操作系统上
# os.rmdir():用于删除路径的目录,并且目录为空目录。否则, 抛出OSError。
os.rmdir(r'D:\python代码\os操作\demo')
总结一下:Windows中推荐使用删除文件用os.remove(),删除空目录用os.removerdirs()。Unix操作系统中推荐使用删除指定文件用os.unlink(),删除空目录用os.rmdir()。详情请见:remove()和unlink()区别。
小案例演示
通过这个小案例,来将一下上面的操作连续走一遍
import os
# 1、通过绝对路径创建文件夹
os.makedirs(r'D:\python代码\os操作\demo')
# 2、手动在demo文件夹下创建一个1.py文件
# 3、使用os.remove()删除1.py文件
os.remove(r'D:\python代码\os操作\demo\1.py')
# 4、此时的demo为空文件夹,使用removedirs()删除多层空文件夹
os.removedirs(r'D:\python代码\os操作\demo')
# 5、此时“D:\python代码”文件夹 下再无 “os操作\demo”
假如觉得上述方法操作不简便的可以参考下面这个方法!!!
import os
import shutil # shutil以后会提到
# 1、通过绝对路径创建文件夹
os.makedirs(r'D:\python代码\os操作\demo')
# 2、手动在demo文件夹下创建一个1.py文件
# 3、递归删除指定目录下的所有子目录和子文件
# 将os操作文件夹所有内容全部删除掉
shutil.rmtree(r'D:\python代码\os操作')
查:查文件名得在改操作的前面,先得知道文件夹下有哪些文件,才好指定需删除的文件。
更多详情查看:python获取文件夹下所有文件及os模块方法
import os
# os.listdir():可以用来查询指定路径下的文件/文件夹
for filename in os.listdir(r'D:\python代码\os操作'):
print(filename)
# os.walk(): 采用递归方式遍历指定路径下的所有内容
# 返回结果:dirpath, dirnames, filenames
# dirpath is a string, the path to the directory.
# dirnames is a list of the names of the subdirectories in dirpath
# filenames is a list of the names of the non-directory files in dirpath.
for i in os.walk(r'D:\python代码\os操作'):
print(i)
#('D:\\python代码\\os操作', ['demo', 'demo1'], [])
#('D:\\python代码\\os操作\\demo', ['demo'], ['0.txt', '1.txt', '2.txt', '3.txt', '4.txt'])
#('D:\\python代码\\os操作\\demo\\demo', [], [])
#('D:\\python代码\\os操作\\demo1', [], [])
改:大多情况为修改文件名,os提供了os.rename()和os.renames()
import os
path = "e:/test/" # 目标路径
"""os.listdir(path) 操作效果为 返回指定路径(path)文件夹中所有文件名"""
filename_list = os.listdir(path) # 扫描目标路径的文件,将文件名存入列表
a = 0
for i in filename_list:
used_name = path + filename_list[a]
new_name = path + "new_" + filename_list[a]
os.rename(used_name,new_name)
print("文件%s重命名成功,新的文件名为%s" %(used_name,new_name))
a += 1