2017-04-05 31 views
0

我在一个文件夹中有30,000个文件。从0开始到30000。我想从头至尾以10的间隔读取结束编号高于5000的时间间隔。我已经创建了下面的代码,生成两个不同范围的数字文件名

​​

此代码读取我的文件05000。但我需要它读取间隔10时endfile大于5000。因此,必须有两个条件,一个用于endfile小于或等于5000它将读取05000,另一个用于endfile高于5000,其中程序的读取间隔为10。任何想法如何写在python中?

+1

你的意思是像'在10个文件块“或每10个文件。后者可以通过在for循环中添加第三个参数(步骤)轻松解决。 '如果endfile> = 500:对于范围内的k(startFile,endFile + 1,10)' – umutto

+0

这不是关于生成字符串的问题吗? –

+0

@umutto每10个文件。因为30000个文件包含数据加载,我需要该程序来转义某个文件。因为我可以修改endFile,所以最好同时具有一个endfile <= 5000和一个endFile> 5000 –

回答

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(start,stop,step)参数。步骤是索引增量大小,如果将其设置为n,它会选取第个第n个元素。

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

而不是引入n_file,我可以直接写入,如果endFile <= 5000 else 10 (范围内的startFile,endFile + 1,step),则step = 1: execfile(read_path + str(k)+“.py”) –

+0

@TanvirHossain是的,你可以,我用n_files更容易阅读。但是在你的评论中,'endfile <= 5000'将始终为真,因为你初始化它。你想用'len(os.listdir(read_path))'替换'n_files'吗? – umutto

+0

实际上我不需要n_file,因为我可以根据需要定义数字。它可以是100或1000或10000.我只需要在这里介绍两个不同情况下的步骤,以减少模拟时间。 –

相关问题