文件夹与文件操作
创建文件夹
创建空文件夹 os.mkdir(filename)
语法:
os.mkdir(filename)
功能:创建空文件夹
注意:当存在和filename相同名字的文件夹时,程序运行会报错,无法创建文件夹
import os
os.mkdir('test')
os.mkdir('demo')
'''
test文件夹创建成功,demo文件夹创建失败,因为该层目录下已存在demo文件夹
FileExistsError: [Errno 17] File exists: 'demo'
'''
检测文件夹是否存在 os.path.exists(‘filename’)
import os
# print(os.path.exists('test'))
# 输出的是布尔值 True False
if not os.path.exists('test'):
os.mkdir('test')
创建多层文件夹 os.makedirs()
语法:
os.makedirs('path1/path2/path3')
注意:最里层文件夹path3存在时,会产生报错
import os
os.makedirs('test1/test2/test3')
os.makedirs('test1/test2/test4')
运行结果:
复制、移动、重命名
复制文件 shutil.copy(file,path/)
语法:
shutil.copy(要复制的文件,要复制到的位置)
注意,若指定的文件和路径不存在,会产生报错
将file文件复制到指定的path路径下
shutil.copy(file,path/)
将file文件复制到指定的path路径下并重命名
shutil.copy(file,path/new_file)
注意:如果是路径,最后以 "/"结尾,养成习惯,否则会被重命名为不带后缀名的文件
import shutil
# shutil.copy('test.py','../')
# 将test.py文件复制到当前程序的父级文件夹下
# shutil.copy('/media/Python/自动化办公/os模块/demo/demo.txt','../')
# 将 /media/Python/自动化办公/os模块/demo路径下的demo.txt文件复制到当前程序的父级文件夹下
# shutil.copy('test.py','./newTest.py')
# # 将test.py文件复制到当前文件夹下并重命名为newTest.py
移动文件夹 shutil.copytree(‘dir’,‘new_dir’)
shutil.copytree('dir','new_dir')
shutil.copytree('要复制的文件夹','要复制到的新文件夹的位置')
会将文件夹内所有的文件和文件夹都复制过去
注意:新文件夹不能已存在
import shutil
shutil.copytree('/media/bobo/自动化办公/os模块/','/media/bobo/demo/')
# 將/media/bobo/自动化办公文件夹下 os模块文件夾內的所有內容
# 复制到新建的/media/bobo文件夹下的 demo文件夹下(demo文件夹会被该命令创建)
移动文件或文件夹
shutil.move(file1,path/)
将file1文件移动到path路径下
注意:path路径要真实存在,若不存在,该命令不会新建文件夹操作
shutil.move(file1,path/file2)
将file1文件移动到path路径下并重命名为file2
注意:path路径要真实存在
shutil.move(dir1/,dir2/)
将dir1/文件中的所有内容移动到新建的dir2文件夹下
注意:该命令会创建新文件夹,
如果dir2文件夹不存在,则创建该文件夹,将dir1中的所有文件移动新建的dir2文件夹下
若dir2文件夹存在,则将dir1文件夹及dir1文件夹下的所有文件移动到dir2文件夹下
# 将/media/bobo/自动化办公/shutil模块下的test.py文件
# 移动到/media/bobo/自动化办公下的demo文件夹下
shutil.move('/media/bobo/自动化办公/shutil模块/test.py','/media/bobo/自动化办公/demo/')
# 将/media/bobo/自动化办公/shutil模块下的test.py文件
# 移动到/media/bobo//自动化办公下的demo文件夹下并重命名为test1.py
shutil.move('/media/bobo/自动化办公/shutil模块/test.py','/media/bobo/自动化办公/demo/test1.py')
shutil.move('/media/bobo/自动化办公/shutil模块/','/media/bobo/自动化办公/demo/')
# 如果/media/bobo/自动化办公文件夹下的demo文件夹不存在,则创建demo文件夹,
# 将media/bobo/自动化办公/shutil模块文件夹中的所有文件移动新建的demo文件夹下
# 若/media/bobo/自动化办公文件夹下的demo文件夹存在,
# 则将/media/bobo/自动化办公文件夹下的shutil模块文件夹中及shutil模块文件夹下的所有文件移动到demo文件夹下
重命名文件或文件夹
重命名文件夹名称/文件名称
os.rename('filename','new_filename')
os.rename('dirname','new_dirname')
import os
# 默认对当前py程序路径下的文件进行重命名
os.rename('demo.py','test.py')
# 绝对路径下对文件进行重命名
os.rename('/media/bobo/自动化办公/os模块/demo/demo.py','/media/bobo/自动化办公/os模块/demo/test.py')
# 默认对当前py程序路径下的文件夹进行命令
os.rename('test','testdir')
# 绝对路径下对文件夹进行重命名
os.rename('/media/bobo/自动化办公/os模块/demo/','/media/bobo/自动化办公/os模块/demodir/')
删除
删除文件 os.remove(filename)
os.remove(filename)
注意,只能删除文件,如果给的是一个文件夹,会报错
import os
# 删除当前py程序所在路径下的文件
os.remove('test.py')
# 删除给定路径下的文件
os.remove('/media/bobo/自动化办公/os模块/demodir/test.py')
删除文件夹 shutil.rmtree(‘dir’)
shutil.rmtree('dir')
删除文件夹,如果文件夹下有文件,会一并删除
import shutil
# 删除当前py程序所在路径下的文件夹
shutil.rmtree('test')
# 删除指定路径下的文件夹
shutil.rmtree('/media/bobo/自动化办公/testdir')