【发布时间】:2019-03-24 22:49:45
【问题描述】:
我有一个端口 ID 的目录结构,并且在该端口 ID 目录中有其类型的子目录,并且在该端口类型目录中它可能有也可能没有一些 .jpg 文件,这样
Port ID- **11852**---> 20Port_1
---> 25Port_1 ---> 1.jpg
---> 25Port_2
---> 25Port_3 --> abc.jpg
---> 75Port_1
---> 75Port_2 --> pqr.jpg
所以目录名“11852”里面有6个子目录,我们只有一种20Port所以它的名字末尾是_1,同样我们有3种25Port所以_1,_2,_3 等等。
我想做的是进入11852目录的每个子目录,检查它们是否包含任何.jpg文件,如果没有,则删除该子目录
例如检查子目录20Port_1里面是否包含任何.jpg文件,因为它里面没有任何文件删除文件夹20Port_1。
现在检查25Port_1,因为它里面有一个文件,保持原样。下一个目录25_Port_2 它里面也没有文件,所以删除它,下一个目录25Port_3这个里面有一个文件(现在这是关键)保持原样,但将其重命名为之前的组类型编号,即将25Port_3的名称更改为25Port_2,
类似地将75Port_2 重命名为75Port_1,因为75Port_1 不包含其中的任何文件。
所以最后我的目录结构应该是这样的
Port ID- **11852** --> 25Port_1 --> 1.jpg
--> 25Port_2 --> abc.jpg
--> 75Port_1 --> pqr.jpg
我试过了
import os
import shutil
fold_list = os.listdir("D/Port ID Folder/11852")
for m in fold_list:
k=0
if len(os.listdir('D/Port ID Folder/11852/'+fold_list[k])) ==0:
x = (fold_list[k].rsplit('_',1)[0]) == (fold_list[k+1].rsplit('_',1)[0])
if x == False:
shutil.rmtree('D/Port ID Folder/11852/'+m)
else:
val = fold_list[k].rsplit('_',1)[1]
shutil.rmtree('D/Port ID Folder/11852/'+m)
但是没有得到输出, 任何建议
谢谢
【问题讨论】:
-
仍然找不到我的问题的解决方案
-
我的建议是您先尝试调试脚本。目前,无论 x 是真还是假,您的脚本都会执行
shutil.rmtree('D/Port ID Folder/11852/'+m),并且您正在计算val而没有在任何地方使用它。如果你不试着去理解你在做什么,你怎么能指望它起作用呢?