内容简介:如果使用Python删除一个文件或文件夹,需要使用os模块。Python版本为3.6.7Linux版本为Ubuntu 18.04.2
如果使用 Python 删除一个文件或文件夹,需要使用os模块。
Python版本为3.6.7
Linux版本为Ubuntu 18.04.2
案例一:
Python os.remove() 删除文件
概述
os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。
在Unix, Windows中均测试有效
语法
remove()方法语法格式如下:
os.remove(path)
参数
path -- 要移除的文件路径
返回值
该方法没有返回值
实例
以下实例演示了 remove() 方法的使用:
#!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys dirPath = "Linux公社/" print ('移除前 Linux 公社目录下有文件:%s' %os.listdir(dirPath)) #判断文件是否存在 if(os.path.exists(dirPath+"linuxmi.txt")): os.remove(dirPath+"linuxmi.txt") print ('移除后linux公社 目录下有文件:%s' %os.listdir(dirPath)) else: print ("要删除的文件不存在!")
执行以上程序输出结果如下:
移除前Linux公社目录下有文件:['www.linuxidc.com', 'linuxidc.com', 'Linux公社LOGO.PNG', 'Linux公社', 'linuxmi.txt', 'linuxidc.com.txt']
移除后linux公社 目录下有文件:['www.linuxidc.com', 'linuxidc.com', 'Linux公社LOGO.PNG', 'Linux公社', 'linuxidc.com.txt']
[Finished in 0.0s]
接着再次执行:
移除前Linux公社目录下有文件:['www.linuxidc.com', 'linuxidc.com', 'Linux公社LOGO.PNG', 'Linux公社', 'linuxidc.com.txt']
要删除的文件不存在!
[Finished in 0.0s]
案例二:
Python os.removedirs() 和shutil.rmtree() 用于删除文件夹
概述
os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。
语法
removedirs()方法语法格式如下:
os.removedirs(path)
参数
path -- 要移除的目录路径
返回值
该方法没有返回值
实例
以下实例演示了 removedirs() 方法的使用:
import os,sys import shutil dstPath="Linux公社/" print ("目录删除前: %s" % os.listdir(dstPath)) #递归的删除目录及文件 #shutil.rmtree('Linux公社/aa') #以下两个函数用于删除空目录文件 os.rmdir("Linux公社/linuxmi") #os.removedirs("test/linuxmi") print ("目录删除后: %s" % os.listdir(dstPath))
执行代码输出如下:
目录删除前: ['www.linuxidc.com', 'linuxmi', 'linuxidc.com', 'Linux公社LOGO.PNG', 'Linux公社', 'linuxidc.com.txt']
目录删除后: ['www.linuxidc.com', 'linuxidc.com', 'Linux公社LOGO.PNG', 'Linux公社', 'linuxidc.com.txt']
[Finished in 0.1s]
shutil 模块
shutil.copyfile( src, dst) #从源src复制到dst中去。 如果当前的dst已存在的话就会被覆盖掉
shutil.move( src, dst) #移动文件或重命名
shutil.copymode( src, dst) #只是会复制其权限其他的东西是不会被复制的
shutil.copystat( src, dst) #复制权限、最后访问时间、最后修改时间
shutil.copy( src, dst) #复制一个文件到一个文件或一个目录
shutil.copy2( src, dst) #在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西
shutil.copy2( src, dst) #如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作
shutil.copytree( olddir, newdir, True/Flase) #把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接
shutil.rmtree( src ) #递归删除一个目录以及目录内的所有内容
案例三:
以下为Python简单删除目录下文件以及文件夹的代码及注释:
#Python简单删除目录下文件以及文件夹 import os import shutil filelist=[] rootdir=r"Linux公社" #选取删除文件夹的路径,最终结果删除img文件夹 filelist=os.listdir(rootdir) #列出该目录下的所有文件名 for f in filelist: filepath = os.path.join( rootdir, f ) #将文件名映射成绝对路劲 if os.path.isfile(filepath): #判断该文件是否为文件或者文件夹 os.remove(filepath) #若为文件,则直接删除 print(str(filepath)+" removed!") elif os.path.isdir(filepath): shutil.rmtree(filepath,True) #若为文件夹,则删除该文件夹及文件夹内所有文件 print("dir "+str(filepath)+" removed!") shutil.rmtree(rootdir,True) #最后删除Linux公社总文件夹 print("删除成功")
执行代码输出如下:
dir Linux公社/www.linuxidc.com removed!
dir Linux公社/linuxidc.com removed!
Linux公社/Linux公社LOGO.PNG removed!
dir Linux公社/Linux公社 removed!
Linux公社/linuxidc.com.txt removed!
删除成功
[Finished in 0.1s]
更多Python相关信息见 Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-05/158470.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Scala在资源文件夹中获取文件的文件路径
- Node.js折腾记一:读指定文件夹,输出该文件夹的文件树
- C/C++遍历文件夹和文件
- QT选择目录等常用文件/文件夹操作
- tar打包如何不打包某一个文件夹(排除某些文件夹)
- 如何解密Windows 10中的EFS加密文件和文件夹
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。