import os
from shutil import copy
import random
if name == 'main':
VAL_EXTRACT_NUM = 6 # 随机抽取数量
BASE_PATH = "G:\A\" # 随机抽取路径
VAL_TAR_PATH = "G:\B\" # 拷贝到新路径
data = os.listdir(BASE_PATH)
print("图片数量:%d" % len(data))
# 随机抽取验证集数据
val_extr_img = random.sample(data, VAL_EXTRACT_NUM)
print(val_extr_img)
for f in val_extr_img:
src = os.path.join(BASE_PATH, f)
data.remove(f)
copy(src, VAL_TAR_PATH)
到这步能随机复制指定数量的图片到新路径 但我不懂怎么重命名图片名称
比如 S001.JPG 被随机抽到
复制并重命名后 新文件名在原文件名前加 “”正式图片“”
新路径下 复制出一个新文件 正式图片S001.JPG
帮忙结合上面的 给出完整版 不然我不知道怎么完善他
添加这两行,具体位置看下面:
print(VAL_TAR_PATH + f, ' 修改为 ' ,VAL_TAR_PATH + '/正式图片_' + f) # 根据这个看下输出是否有问题
os.rename(VAL_TAR_PATH + f, VAL_TAR_PATH + '/正式图片_' + f)
具体修改代码如下,请看注释
import os
from shutil import copy
import random
if __name__ == 'main':
VAL_EXTRACT_NUM = 6 # 随机抽取数量
BASE_PATH = "G:\A\" # 随机抽取路径
VAL_TAR_PATH = "G:\B\" # 拷贝到新路径
data = os.listdir(BASE_PATH)
print("图片数量:%d" % len(data))
# 随机抽取验证集数据
val_extr_img = random.sample(data, VAL_EXTRACT_NUM)
print(val_extr_img)
for f in val_extr_img:
src = os.path.join(BASE_PATH, f)
data.remove(f)
copy(src, VAL_TAR_PATH)
print(VAL_TAR_PATH + f, ' 修改为 ' ,VAL_TAR_PATH + '/正式图片_' + f) # 根据这个看下输出是否有问题
os.rename(VAL_TAR_PATH + f, VAL_TAR_PATH + '/正式图片_' + f)
# os.rename(VAL_TAR_PATH + f, VAL_TAR_PATH + '正式图片_' + f) # 因为不确定你的f返回格式是怎样的,大致猜测这样凭借,如果报错,请发出报错文本给我或者自己根据实际情况修改下
如有问题及时沟通
举个例子,望采纳!
import os
file_name = 'S001.JPG'
new_name = '正式图片' + file_name
os.rename(file_name,new_name)
在 你抽取新的路径后面加上新的文件名就行