for i in os.listdir(path): ##用于返回指定的文件夹包含的文件或文件夹的名字的列表
path_file = os.path.join(path,i) ##连接两个或更多的路径名组件
if os.path.isfile(path_file): ##判断是否为文件
os.remove(path_file) ##对文件进行删除
else: ##如果为文件夹继续进行判断
for f in os.listdir(path_file): ##二级文件夹下文件无法删除,下叙代码进行改进
path_file2 =os.path.join(path_file,f)
if os.path.isfile(path_file2):
os.remove(path_file2)
def del_file(path):
for i in os.listdir(path):
path_file = os.path.join(path,i)
if os.path.isfile(path_file):
os.remove(path_file)
else:
del_file(path_file) ##如果不是文件,对文件夹继续进行del_file函数
##执行
path='E:\垃圾分类\文件夹'
del_file(path)
def del_txt(path): ##定义删除txt文件函数
for i in os.listdir(path):
path_file = os.path.join(path,i)
file=os.path.splitext(path_file)
filename,type=file
if type=='.txt': ##如果文件后缀为txt,则删除文件
os.remove(path_file)
##执行
path1='E:\\垃圾分类\\华为数据\\train_data_v2'
del_txt(path1)
import sys
def rename():
path=input("请输入路径(例如D:\\picture):")
name=input("请输入开头名:")
startNumber=input("请输入开始数:")
fileType=input("请输入后缀名(如 .jpg、.txt等等):")
count=0
i=1
filelist=os.listdir(path)
for files in filelist:
Olddir=os.path.join(path,files)
if os.path.isdir(Olddir):
continue
Newdir=os.path.join(path,name+str("%03d" % i)+'-'+str(count+int(startNumber))+fileType)
os.rename(Olddir,Newdir)
if count==74:
count=0
i=i+1
else:
count=count+1
print("一共修改了"+str((i-1)*78+count)+"个文件")
rename()
def creDir():
## 数字前补0创建文件夹002,003...
root = 'E:\\picture\\'
i = 1
for j in range(196):
k = 'name'+"%03d" % i ##左边补零的等宽格式
file_name = root + str(k)
os.mkdir(file_name)
i=i+1
##原文链接:https://blog.csdn.net/u014421797/article/details/83242997
##将指定文件放入指定文件夹中,文件夹与文件在同一路径下,且文件夹名称与文件前缀一致
for folderName, subfolders, filenames in os.walk('E:\\picture'): ##文件与文件夹在同一路径
for subfolder in subfolders:
for filename in filenames:
if filename[:7] == subfolder[:7]:
try:
shutil.move(folderName + '\\'+ filename, folderName + '\\'+ subfolder)
except OSError:
pass
def del_folder(path): ##定义删除指定名称文件夹函数
for i in os.listdir(path):
path_folder = os.path.join(path,i) ##将文件夹名称保存在path_folder中
root = 'E:\\每人任务夹\\'
j = 1
for l in range(196): ##编辑想要删除文件夹名称
k ='E:\\每人任务夹\\name'+"%03d" % j
j=j+1
if path_folder==k: ##判断是否有该文件夹,如果有则删除
shutil.rmtree(path_folder)
##执行
path2='E:\\每人任务夹\\'
del_folder(path2)
##代码运行时如果不小心丢了可以用history找回
python可从anaconda prompt中进入操作,比cmd中更方便
直接在anaconda prompt中写入路径,在该路径下进入,具体如下
(为了与上次记录分开,不记得上面写什么了,重新来)
文件data为330个垃圾类别文件夹名称,比如:香蕉皮、塑料袋等
import os
import shutil
import pandas as pd
import numpy as np
data=pd.read_csv('E:\\任务分配\\分类表格.csv',sep=',',names=['name']) ##names为文件特征命名
def creDir():
root = 'E:\\任务分配\\合并图片\\图片分类1\\' ##文件夹创建路径
i=0
for j in range(333):
file_name = root + str(data.name[i])
os.mkdir(file_name)
i=i+1
creDir()
(比如:name1下香蕉皮文件夹与name2下香蕉皮文件夹图片合并,此代码为333类文件夹批量合并,利用文件名作为索引进行寻找)
SOURCE_DIR = r'E:\任务分配\合并图片\图片'
root= 'E:\\任务分配\\合并图片\\图片分类1\\'
##rb = open_workbook('m:\\1.xls')
i=0
for j in range(333):
COPY_DIR =data.name[i]
TARGET_DIR=root+str(data.name[i])
for dir_path, sub_dirs, files in os.walk(SOURCE_DIR, True):
if os.path.split(dir_path)[-1] == COPY_DIR:
for file in files:
shutil.copyfile(os.path.join(dir_path, file), \
os.path.join(TARGET_DIR, file))
## ws = rb.get_sheet(0)
## ws.write(0,i,)
## wb.save('m:\\1.xls')
i=i+1
(在source_dir中寻找与copy_dir文件名相同的,全部复制放入到target_dir中)
##函数编辑
SOURCE_DIR = r'E:\任务分配\合并图片\图片'
TARGET_DIR=r'E:\\任务分配\\合并图片\\图片分类\\零食'
COPY_DIR ='零食'
for dir_path, sub_dirs, files in os.walk(SOURCE_DIR, True):
if os.path.split(dir_path)[-1] == COPY_DIR:
for file in files:
shutil.copyfile(os.path.join(dir_path, file), \
os.path.join(TARGET_DIR, file))
##运行
SOURCE_DIR = r'E:\任务分配\合并图片\图片'
dir_path=os.walk(SOURCE_DIR, False)
##读入有争议图片
data1=pd.read_csv('E:\\任务分配\\有争议图片.csv',sep=',',names=['file','name'])
data1.file[1]
##删除文件
i=1
for j in range(44):
root='E:\\任务分配\\合并图片\\图片分类\\'
file_name=root+str(data1.file[i])+'\\'+str(data1.name[i])+'.jpg';
os.remove(file_name)
i=i+1
##读入有争议图片
from shutil import copyfile
data2=pd.read_csv('E:\\任务分配\\最终有争议图片##批量复制文件到指定文件夹
##创建特定文件夹
i=1
root='E:\任务分配\最终有争议图片\有争议图片\\'
root1='E:\任务分配\最终有争议图片\\最终有争议'
##放置有争议图片
for j in range(912):
file_name=root+str(data2.file[i][0:6])+'\\'+str(data2.file[i])+'.jpg';
file=root1+'\\'+str(data2.file[i])+'.jpg';
shutil.copyfile(file_name,file)
i=i+1csv',sep=',',names=['file','name1','name2','name3'])
data2.file[0]