用于循环n次的python

用于循环n次的python,python,loops,Python,Loops,使用如下循环列出目录中的n个文件: myfiles = glob.glob("*.xml") files = len(myfiles) count = 0 myfiles.sort() files_to_process = 3 for filename in myfiles: count += 1 print (time.strftime("%I:%M:%S"), count ,'of', files, '|', filename) if count == files_to_

使用如下循环列出目录中的n个文件:

myfiles = glob.glob("*.xml")
files = len(myfiles)

count = 0
myfiles.sort()
files_to_process = 3
for filename in myfiles:
   count += 1
   print (time.strftime("%I:%M:%S"), count ,'of', files, '|', filename)
   if count == files_to_process:
      break

除了使用break之外,是否还有其他方法只迭代n次

使用myfiles[:count]或itertools.islicemyfiles,count只能对文件名进行第一次计数。

使用myfiles[:count]或itertools.islicemyfiles,count只能对文件名进行第一次计数。

尝试以下操作:

myfiles = glob.glob("*.xml")
files = len(myfiles)

count = 0
myfiles.sort()
files_to_process = 3
for filename in myfiles[:files_to_process]:
   count += 1
   print (time.strftime("%I:%M:%S"), count ,'of', files, '|', filename)
试试这个:

myfiles = glob.glob("*.xml")
files = len(myfiles)

count = 0
myfiles.sort()
files_to_process = 3
for filename in myfiles[:files_to_process]:
   count += 1
   print (time.strftime("%I:%M:%S"), count ,'of', files, '|', filename)
这里有一种使用zip的方法:行为是在用尽所有时间后停止,无论哪个时间序列更短。压缩范围还可以节省您手动更新计数器的时间

myfiles=glob.glob*.xml files=lenmyfiles myfiles.sort 文件到进程=3 对于文件名,按zipmyfiles计数,范围1,文件\u到\u进程+1: printtime.strftime%I:%M:%S,计数,“of”,文件,“|”,文件名 也就是说,这个解决方案不是惯用的,我不认为代码比使用break的版本好。

这里有一种使用zip的方法:行为是在用尽任何一个较短的序列后停止。压缩范围还可以节省您手动更新计数器的时间

myfiles=glob.glob*.xml files=lenmyfiles myfiles.sort 文件到进程=3 对于文件名,按zipmyfiles计数,范围1,文件\u到\u进程+1: printtime.strftime%I:%M:%S,计数,“of”,文件,“|”,文件名
这就是说,这个解决方案不是惯用的,我不认为代码比使用break的版本好。

这是一个很好的干净解决方案,但当列表中的文件少于三个时,它将提供一个索引器。在一分钟内添加,以避免索引器-虽然不再那么干净:这是一个很好的干净解决方案,但是,当列表中的文件少于三个时,它将提供一个索引器。在一分钟内添加以避免该索引器-尽管不再那么干净: