from pathlib import Path
def keep_file(file: Path) -> bool:
# Take decision to keep the file or not
...
# Agnostic OS path with the Path object
folder = Path("path", "to", "folder")
for file in folder.iterdir():
if not keep_file(file):
file.unlink()
import os
directory = "path/to/validation_set"
for filename in os.listdir(directory):
if filename == "example.jpg":
os.remove(os.path.join(directory, filename))
2条答案
按热度按时间wlzqhblo1#
我的回答与@jahantaila的回答非常相似。虽然,我不认为在这里使用
os
库是一件好事。我用pathlib
标准库中的Path
类给予了答案。要在Python上执行文件处理,可以使用标准库pathlib。当你想在Python中浏览/编辑系统上的文件时,这是首选的方法。如果您想进行非常具体的操作,可以使用os库或模块os.path,但您似乎不适合这种情况。
在您的情况下,您似乎要删除一些符合某些条件的文件。下面是一个例子:
我邀请您阅读文档中有关路径属性的部分,以了解如何访问文件的信息,如
name
,suffix
等。您需要它们来填充keep_file
函数。s2j5cfk02#
您可以使用Python的
os
模块根据文件名删除文件。下面是一个示例代码片段,它从目录中删除名称为"example.jpg"
的所有文件:您可以修改此代码,通过将
"example.jpg"
字符串更改为所需的文件名来删除具有不同名称的文件。在创建tf.keras.utils.image_dataset_from_directory
之前放置此代码,以便从目录中删除所需的文件。请注意,这将永久删除文件,因此如果需要保留它们,请确保您有备份。
希望这有帮助!