为两个不同的范围生成数字文件名

时间:2017-04-05 08:05:52

标签: python

我在一个文件夹中有30,000个文件。从0开始到30000。当结束编号高于10时,我想以5000间隔从头到尾阅读。我创建了以下代码,

startFile = 0
endFile = 5000

for k in range(startFile, endFile + 1):
    execfile(read_path + str(k) + ".py")

此代码将我的文件0读取到5000。但是当endfile大于5000时,我需要以10为间隔进行阅读。因此,必须有2个条件,一个用于endfile小于或等于5000,它将读取05000,一个用于endfile高于5000程序将以10的间隔读取。知道如何在python中编写它吗?

1 个答案:

答案 0 :(得分:0)

您可以使用os.listdir;

找到目录中的文件数
>>> import os
>>> n_files = len(os.listdir(read_path))
>>> n_files 
74

一旦你这样做,你可以选择你的步长并通过给步数参数来处理每个第10个文件;

>>> startFile = 0
>>> endFile = 5000

>>> step = 1 if n_files <= endFile else 10

>>> for k in range(startFile, endFile + 1, step):
>>>     execfile(read_path + str(k) + ".py")

参考range(开始,停止,步骤)参数。 Step是索引增量大小,如果将其设置为 n ,它将选择 n 第二个元素。

>>> [i for i in range(0, 100, 10)]
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]