我有100个不同名称的文件夹,每个文件夹中应该有相同的三个文件,但在某些文件夹中,这三个文件都不存在。
如何删除空文件夹或仅包含一个或两个文件的文件夹?
这是三个文件:
001.7z
002.7z
003.7z
首先,获取文件夹中所有目录的列表:
import shutil
import os
dirs = filter(os.path.isdir, os.listdir(os.curdir))
在所有文件夹上运行查找与提到的文件名匹配的特定文件(完成此部分...):
for dir in dirs:
files = filter(os.path.isfile, os.listdir(str(os.curdir) + dir))
for file in files:
if file=="01.7z": ##Continue here
shutil.rmtree(str(os.curdir) + dir)
break
Python使用glob
获取文件和文件夹。
import glob, os, shutil
# Get all folders in current directory.
folders = [item for item in glob.iglob('*') if os.path.isdir(item)]
# Loop though the folders.
for folder in folders:
# Check amount of .7z files and if less than 3, remove folder tree.
if len(glob.glob(folder + r'\*.7z')) < 3:
shutil.rmtree(folder)
使用FileFindFirstFile
自动编辑。可以使用STD UDF,这可能是更少的代码。
$hFind1 = FileFindFirstFile('*')
If $hFind1 = -1 Then Exit 1
While 1
; Get next folder.
$sFound1 = FileFindNextFile($hFind1)
If @error Then ExitLoop
; Skip files.
If Not @extended Then ContinueLoop
; Find 7z files.
$hFind2 = FileFindFirstFile($sFound1 & '\*.7z')
; If no handle, delete folder.
If $hFind2 = -1 Then
DirRemove($sFound1)
ContinueLoop
EndIf
; Count for 7z files.
$iCount = 0
; Get count of 7z files.
While 1
$sFound2 = FileFindNextFile($hFind2)
If @error Then ExitLoop
$iCount += 1
WEnd
FileClose($hFind2)
; Remove folder if count less than 3.
If $iCount < 3 Then
DirRemove($sFound1, 1); 1 = recurse
EndIf
WEnd
FileClose($hFind1)
有关删除数据的Firebase文档中说: 删除数据 删除数据的最简单方法是对数据位置的引用调用remove()。 还可以通过将null指定为另一个写入操作(如set()或update())的值来删除。您可以将此技术与update()结合使用,在单个API调用中删除多个子项。 有谁能解释一下,我认为最后一行可以帮助我删除firebase文件夹中的所有文件是什么意思?
我想从名为"fajlovi"的文件夹中删除文件。多个和单个删除应该工作。但是它会删除文件夹中的第一个文件(文件夹中文件数组中的0位置)。如果我检查任何文件,它将删除前4个文件,而不是我检查的文件。下面是代码: 1.这是页面的截图: 2.然后我检查要删除的图像: 4.再次进入页面后,我们可以看到错误的图像被删除:
问题内容: 我使用以下代码删除所有文件: 它将删除false 文件夹所在的位置。 我想删除文件夹及其所有子文件。 我该如何修改? 问题答案: 最简单的方法是使用Apache Commons IO库中的FileUtils.deleteDirectory。 请记住,这还将删除包含目录。 在gradle文件中添加此行以使用Apache
问题内容: 如何在Python中删除文件或文件夹? 问题答案: 删除文件。 删除一个空目录。 删除目录及其所有内容。 模块中的对象还公开了这些实例方法: 删除文件或符号链接。 删除一个空目录。
问题内容: 我一直在使用一段特定的代码从文件夹中删除文件,但是事实证明这是非常有问题的,因为也许我忘记了关闭一个或两个InputStream。我拥有的代码是如此之大,以至于我无法看到所有尚未关闭的Inputstreams。有没有打开InputStream的删除文件的方法? 这是我一直在使用的代码; 我已经编辑了代码。此版本有效。 问题答案: 提供的代码块中没有InputStream实例。 为了不编
问题内容: 我在删除空目录时遇到问题。这是我的代码: 参数是我要传递需要完成工作的目录的位置。该目录如下所示: 请注意,以上所有文件夹均为空。当我运行该脚本的文件夹,单独被删除!但是,文件夹,并不会被删除,即使它们是空文件夹。 编辑: 我得到的例外是: 我在哪里弄错了? 问题答案: 尝试: