Python 从文件夹列表中删除文件
我的目录中有一个文件夹列表,在每个文件夹中,我都试图删除所有以字母“p”开头的文件 如何让我的第二个for循环迭代每个文件夹中的所有文件?目前,它只是迭代每个文件夹的名称,而不是内部的文件Python 从文件夹列表中删除文件,python,nested-loops,directory,Python,Nested Loops,Directory,我的目录中有一个文件夹列表,在每个文件夹中,我都试图删除所有以字母“p”开头的文件 如何让我的第二个for循环迭代每个文件夹中的所有文件?目前,它只是迭代每个文件夹的名称,而不是内部的文件 folder_list_path = 'C:\Users\jack\Desktop\cleanUp' for folder in os.listdir(folder_list_path): print folder for filename in folder: os.chdi
folder_list_path = 'C:\Users\jack\Desktop\cleanUp'
for folder in os.listdir(folder_list_path):
print folder
for filename in folder:
os.chdir(folder)
if filename.startswith("P"):
os.unlink(filename)
print 'Removing file that starts with P...'
未经测试,并使用该模块
您还可以使用
os.walk
--找到子目录,而不是在文件夹\u list\u path
中的每个项目上循环,并在其上调用os.path.isdir
。使用glob
查找和os
删除
import glob, os
for f in glob.glob("*.bak"):
os.remove(f)
在程序文件夹中有一个相对路径。请尝试此程序的修改版本:
import os
folder_list_path = 'C:\Users\jack\Desktop\cleanUp'
for folder in os.listdir(folder_list_path):
print folder
subdir=os.path.join(folder_list_path,folder)
for file in os.listdir(subdir):
path=os.path.join(subdir,file)
if os.path.isfile(path) and file.startswith("P"):
print 'Removing file that starts with P...'
os.unlink(path)
使用
os.walk
遍历目录
import os
starting_directory = u'.'
for root, dirs, files in os.walk(starting_directory):
path = root.split('/')
for file in files:
if file.startswith('p'):
os.remove(os.path.join(os.path.basename(root), file))
对于文件夹中的文件名:
不会执行您希望它执行的操作。请使用操作系统。遍历目录中的所有文件夹/文件。将所有要删除的操作添加到新列表中,然后使用os.unlink
。仔细检查你的清单,这样你就不会意外地删除任何重要的东西
import os
starting_directory = u'.'
for root, dirs, files in os.walk(starting_directory):
path = root.split('/')
for file in files:
if file.startswith('p'):
os.remove(os.path.join(os.path.basename(root), file))