作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理 257 个包含图像的文件夹。我想复制每个文件夹中 80% 的图像,并将它们复制到一个名为 Training 的新文件夹中。 257 个文件夹中每个文件夹中剩余的 20% 的图像将被复制到一个名为 Test 的新文件夹中。最后,我将有两个新文件夹 Training 和 Test,其中 Training 包含从我的 257 个文件夹中随机选择的图像的 80%,而 Test 包含 20%。
是否有任何 Python 函数可以实现这一点?我做了一些研究,我发现的只是函数 shutil,它将所有文件从源文件夹复制到目标文件夹。
谢谢
最佳答案
您可以使用如下脚本:
import os
import shutil
import random
SOURCES = [...] # autogenerated or predefined constant
TRAINING = "Training"
TEST = "Test"
def main():
os.makedirs(TRAINING, exist_ok=True)
os.makedirs(TEST, exist_ok=True)
for src_dir in SOURCES:
files = os.listdir(src_dir)
random.shuffle(files)
sep = round(len(files) * 0.8)
for file in files[:sep]:
shutil.copy(
os.path.join(src_dir, file),
TRAINING,
)
for file in files[sep:]:
shutil.copy(
os.path.join(src_dir, file),
TEST,
)
if __name__ == "__main__":
main()
请注意,当复制到同一目的地时,具有相同文件名的文件会被静默覆盖。
关于python - 有没有办法将随机文件从源复制到目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59203863/
我是一名优秀的程序员,十分优秀!