如何删除文件或文件夹?
当前回答
这是我删除目录的功能。“路径”需要完整的路径名。
import os
def rm_dir(path):
cwd = os.getcwd()
if not os.path.exists(os.path.join(cwd, path)):
return False
os.chdir(os.path.join(cwd, path))
for file in os.listdir():
print("file = " + file)
os.remove(file)
print(cwd)
os.chdir(cwd)
os.rmdir(os.path.join(cwd, path))
其他回答
shutil.rmtree是异步函数,所以如果你想检查它何时完成,你可以使用while。。。环
import os
import shutil
shutil.rmtree(path)
while os.path.exists(path):
pass
print('done')
在Python中删除文件或文件夹
Python中有多种删除文件的方法,但最好的方法如下:
os.remove()删除文件。os.unlink()删除文件。它是remove()方法的Unix名称。shutil.rmtree()删除目录及其所有内容。pathlib.Path.unlink()删除单个文件。pathlib模块在Python 3.4及更高版本中可用。
os.remove()
示例1:使用os.Remove()方法删除文件的基本示例。
import os
os.remove("test_file.txt")
print("File removed successfully")
示例2:使用os.path.isfile检查文件是否存在,并使用os.remove删除文件
import os
#checking if file exist or not
if(os.path.isfile("test.txt")):
#os.remove() function to remove the file
os.remove("test.txt")
#Printing the confirmation message of deletion
print("File Deleted successfully")
else:
print("File does not exist")
#Showing the message instead of throwig an error
示例3:Python程序删除具有特定扩展名的所有文件
import os
from os import listdir
my_path = 'C:\Python Pool\Test\'
for file_name in listdir(my_path):
if file_name.endswith('.txt'):
os.remove(my_path + file_name)
示例4:删除文件夹中所有文件的Python程序
要删除特定目录中的所有文件,只需使用*符号作为模式字符串。#导入os和glob模块导入os,glob#循环浏览文件夹项目所有文件并逐个删除它们对于glob.glob(“pythonpool/*”)中的文件:os.remove(文件)打印(“已删除”+str(文件))
os.unlink()
os.unlink()是os.remove()的别名或另一个名称。在Unix os中,remove也称为unlink。注意:os.unlink()和os.remove()的所有功能和语法都相同。它们都用于删除Python文件路径。这两个都是Python标准库中os模块中的方法,用于执行删除功能。
shutil.rmtree()
示例1:Python程序使用shutil.rmtree()删除文件
import shutil
import os
# location
location = "E:/Projects/PythonPool/"
# directory
dir = "Test"
# path
path = os.path.join(location, dir)
# removing directory
shutil.rmtree(path)
示例2:Python程序使用shutil.rmtree()删除文件
import shutil
import os
location = "E:/Projects/PythonPool/"
dir = "Test"
path = os.path.join(location, dir)
shutil.rmtree(path)
pathlib.Path.rmdir()以删除空目录
Pathlib模块提供了与文件交互的不同方式。Rmdir是允许您删除空文件夹的路径函数之一。首先,您需要为目录选择Path(),然后调用rmdir()方法将检查文件夹大小。如果它是空的,它将删除它。
这是删除空文件夹的好方法,而不用担心丢失实际数据。
from pathlib import Path
q = Path('foldername')
q.rmdir()
import os
folder = '/Path/to/yourDir/'
fileList = os.listdir(folder)
for f in fileList:
filePath = folder + '/'+f
if os.path.isfile(filePath):
os.remove(filePath)
elif os.path.isdir(filePath):
newFileList = os.listdir(filePath)
for f1 in newFileList:
insideFilePath = filePath + '/' + f1
if os.path.isfile(insideFilePath):
os.remove(insideFilePath)
您可以使用内置的pathlib模块(需要Python 3.4+,但PyPI上有旧版本的后端:pathlib、pathlib2)。
要删除文件,可以使用unlink方法:
import pathlib
path = pathlib.Path(name_of_file)
path.unlink()
或使用rmdir方法删除空文件夹:
import pathlib
path = pathlib.Path(name_of_folder)
path.rmdir()
用于删除文件的Python语法
import os
os.remove("/tmp/<file_name>.txt")
or
import os
os.unlink("/tmp/<file_name>.txt")
or
用于Python的pathlib库版本>=3.4
file_to_rem = pathlib.Path("/tmp/<file_name>.txt")
file_to_rem.unlink()
Path.unlink(missing_ok=False)
用于删除文件或符号链接的Unlink方法。
如果missing_ok为false(默认值),则在路径不存在时引发FileNotFoundError。如果missing_ok为true,则将忽略FileNotFoundError异常(行为与POSIX rm-f命令相同)。在版本3.8中更改:添加了missing_ok参数。
最佳实践
首先,检查文件或文件夹是否存在,然后将其删除。可以通过两种方式实现:
os.path.isfile(“/path/to/file”)使用异常处理。
os.path.isfile示例
#!/usr/bin/python
import os
myfile = "/tmp/foo.txt"
# If file exists, delete it.
if os.path.isfile(myfile):
os.remove(myfile)
else:
# If it fails, inform the user.
print("Error: %s file not found" % myfile)
异常处理
#!/usr/bin/python
import os
# Get input.
myfile = raw_input("Enter file name to delete: ")
# Try to delete the file.
try:
os.remove(myfile)
except OSError as e:
# If it fails, inform the user.
print("Error: %s - %s." % (e.filename, e.strerror))
各自的输出
Enter file name to delete : demo.txt Error: demo.txt - No such file or directory. Enter file name to delete : rrr.txt Error: rrr.txt - Operation not permitted. Enter file name to delete : foo.txt
用于删除文件夹的Python语法
shutil.rmtree()
shutil.rmtree()示例
#!/usr/bin/python
import os
import sys
import shutil
# Get directory name
mydir = raw_input("Enter directory name: ")
# Try to remove the tree; if it fails, throw an error using try...except.
try:
shutil.rmtree(mydir)
except OSError as e:
print("Error: %s - %s." % (e.filename, e.strerror))