python noob在这里并且难倒。我正在尝试将文件从源目录复制到输出目录,重命名文件并为组中的每个成员重新循环所有这些。
到目前为止,我的输出只给出了john在组中的第一组文件。
有人能指出我做错了吗?请帮忙..
import os
import shutil
from glob import glob
import easygui as eg
groups = {'mark': ('john', 'lisa', 'craig', 'jessie'),}
title = 'Title'
msg = 'Choose Input Directory'
default = 'C\\:'
inputdir = eg.diropenbox(msg, title, default)
files = glob(inputdir + '/*.*')
x = input('How many copies? ')
y = raw_input('Text for filename? ')
otitle = 'Title'
omsg = 'Choose Output Directory'
odefault = 'C\\:'
outputdir = eg.diropenbox(omsg, otitle, odefault)
x = x - 1
z = 0
for members in groups['mark']:
while x >= 0:
for filename in files:
shutil.copy(filename, outputdir)
ofiles = glob(outputdir + '/*.*')
for ofilename in ofiles:
if '-' and 'Template' in ofilename:
os.rename(ofilename, ofilename.replace('-', str(x)).replace('Template', y))
x -= 1
files = glob(outputdir + '/*.*')
for filename in files:
if 'person' in filename:
os.rename(filename, filename.replace('person', groups['mark'][z]))
z += 1
答案 0 :(得分:1)
在第一次迭代后,x
已经0
,因此您不会进入while
循环。
我认为您希望存储副本数量,并在每次迭代后重置x
。
类似的东西:
copies = input('How many copies? ')
...
x = copies - 1
for members in groups['mark']:
x = copies - 1
while x >= 0:
...