现在已经能完成 从A文件夹 随机抽取(指定数量)6张照片 复制到B文件夹并重命名为 XX图片+(1)+(2)……
问题: 我需要做300组不同的设置 这样一段接一段 我后面这个文件会非常长
能不能做一个Excel文件 让他调用
# 执行拷贝图片的脚本 ----------------------------------------------------
import os
from shutil import copy
import random
if __name__ == '__main__':
NUM = 5 # 随机抽取数量
PATH = "G:\A客户样片\室内白纱\\" # 随机抽取 客户照片
PATH2 = "G:\B客户模板\模板A001\\" # 拷贝 到 公司模板
PATH3 ='室内 ({}).jpg' # 重命名 文件名
data = os.listdir(PATH)
print("客户图片数量:%d" % len(data))
# 随机抽取客户照片
val_extr_img = random.sample(data, NUM)
print(val_extr_img)
idx = 1
for f in val_extr_img:
src = os.path.join(PATH, f)
data.remove(f)
copy(src, PATH2)
print(PATH2 + f,PATH2 + PATH3.format(idx))
os.rename(PATH2 + f,PATH2 + PATH3.format(idx))
idx += 1
理解了 方便发下excel的模板吗
01.xlsx
import os
import time
from shutil import copy
import random
import pandas as pd
def func(NUM, PATH, PATH2, PATH3):
data = os.listdir(PATH)
print("客户图片数量:%d" % len(data))
# 随机抽取客户照片
val_extr_img = random.sample(data, NUM)
print(val_extr_img)
idx = 1
for f in val_extr_img:
src = os.path.join(PATH, f)
data.remove(f)
copy(src, PATH2)
print(PATH2 + f, PATH2 + PATH3.format(idx))
os.rename(PATH2 + f, PATH2 + PATH3.format(idx))
idx += 1
if __name__ == '__main__':
input_excel = "01.xlsx"
sleep_time = 10 # 秒为单位
df = pd.read_excel(input_excel, index_col=0)
row_len = df.shape[0]
for i in range(1, row_len):
print("###########################")
print("这是第{i}行".format(i=i))
try:
num = df.iloc[i, 0]
print("num", df.iloc[i, 0])
except Exception as e:
print("结束")
break
path1 = df.iloc[i, 1]
path2 = df.iloc[i, 2]
path3 = df.iloc[i, 3]
print(num, path1, path2, path3)
func(num, path1, path2, path3)
time.sleep(sleep_time)
建议用文本保存配置,方便快捷,如下:
```bash
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import configparser
config_file = "pic_config.ini"
def read_config():
'''
读取配置文件
:return:
'''
# 生成conf对象
conf = configparser.ConfigParser()
# 载入配置文件
conf.read(config_file)
for i in range(0,10):
sec="pic{}".format(i)
if not conf.has_section(sec):
conf.add_section(sec)
num = conf.get(sec, "num")
path1 = conf.get(sec, "path1")
path2 = conf.get(sec, "path2")
path3 = conf.get(sec, "path3")
print("item {}: num:{}, path1{}, path2{}, path3{}".format(sec,num,path1,path2,path3))
def write_config():
'''
记录参数配置文件
:return:
'''
# 生成conf对象
conf = configparser.ConfigParser()
for i in range(0,10):
sec="pic{}".format(i)
conf.add_section(sec)
conf.set(sec, "num", "6")
conf.set(sec, "path1", "xxxxx")
conf.set(sec, "path2", "xxxxx")
conf.set(sec, "path3", "xxxxx")
with open(config_file, "w") as fp:
conf.write(fp)
if __name__ == '__main__':
write_config()
read_config()