Python---文件和文件夹操作
os模块
在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下:
第一步:导入os模块
import os
第二步:调用os模块中的相关方法
os.函数名()
与文件操作相关方法
编号 | 函数 | 功能 |
---|---|---|
1 | os.rename(目标文件名称,新文件名称) | 对文件进行重命名操作 |
2 | os.remove(要删除文件名称) | 对文件进行删除操作 |
案例:把Python项目目录下的python.txt文件,更名为linux.txt,休眠20s,刷新后,查看效果,然后对这个文件进行删除操作。
# 第一步:导入os模块
import os
# 第三步:引入time模块
import time
# 第二步:使用os.rename方法对python.txt进行重命名
os.rename('python.txt', 'linux.txt')
# 第四步:休眠20s
time.sleep(20)
# 第五步:删除文件(linux.txt)
os.remove('linux.txt')
与文件夹操作相关操作
前提:
import os
相关方法:
编号 | 函数 | 功能 |
---|---|---|
1 | os.mkdir(新文件夹名称) | 创建一个指定名称的文件夹 |
2 | os.getcwd() | current work directory,获取当前目录名称 |
3 | os.chdir(切换后目录名称) | change directory,切换目录 |
4 | os.listdir(目标目录) | 获取指定目录下的文件信息,返回列表 |
5 | os.rmdir(目标目录) | 用于删除一个指定名称的"空"文件夹 |
案例1:
# 导入os模块 import os # 1、使用mkdir方法创建一个images文件夹 # os.mkdir('images') # os.mkdir('images/avatar') # 2、getcwd = get current work directory print(os.getcwd()) # 3、os.chdir,ch = change dir = directory切换目录 os.chdir('images/avatar') print(os.getcwd()) # 切换到上一级目录 => images os.chdir('../../') print(os.getcwd()) # 4、使用os.listdir打印当前所在目录下的所有文件,返回列表 print(os.listdir()) # 5、删除空目录 os.rmdir('images/avatar')
案例2:准备一个static文件夹以及file1.txt、file2.txt、file3.txt三个文件
① 在程序中,将当前目录切换到static文件夹
② 创建一个新images文件夹以及test文件夹
③ 获取目录下的所有文件
④ 移除test文件夹
# 导入os模块
import os
# ① 在程序中,将当前目录切换到static文件夹
os.chdir('static')
# print(os.getcwd())
# ② 创建一个新images文件夹以及test文件夹
# os.mkdir('images')
# os.mkdir('test')
# ③ 获取目录下的所有文件
# print(os.listdir())
for file in os.listdir():
print(file)
# ④ 移除test文件夹
os.rmdir('test')
文件夹删除补充(递归删除、慎重!)
# 导入shutil模块
import shutil
# 递归删除非空目录
shutil.rmtree('要删除文件夹路径')
递归删除文件夹的原理:理论上,其在删除过程中,如果文件夹非空,则自动切换到文件夹的内部,然后把其内部的文件,一个一个删除,当所有文件删除完毕后,返回到上一级目录,删除文件夹本身。
普及路径的小知识
绝对路径:
D:\PycharmProjects\pythonProject\static
相对路径:
① 同级路径,都在同一个文件夹中,兄弟关系,如static目录下有file1.txt和file2.txt,则file1.txt和file2.txt就是同级关系,同级访问直接使用名称即可。
② 下一级路径,我们的文件与另外一个文件存在上下级关系,如images文件夹中存在一个avatar文件夹,则images是上级目录,avatar是下级目录。则我们访问avatar可以通过images/avatar来实现。
③ 上一级路径,如果我们某些时候,向从当前目录下,跳出到外一层路径,我们可以使用../来实现。