按名称

时间:2016-11-10 13:01:09

标签: python loops directory

好的,我有一个包含许多文件和子目录的目录;在这些目录中有20个名为mbr001mbr002的目录,......直到mbr020我感兴趣的目录。

我想编写一个程序,迭代进入mbr001,做一些事情,然后到mbr002,做同样的事情,等等。

使用Python os.chdir('./mbr001')直到20的解决方案似乎效率很低。

此外,当我在这样的目录中时,让我们说例如mbr012,我想创建一个变量,其名称中包含我所在的mbr的数量,在这种情况下为12.类似于{ {1}}。 (这个variable = 'mbr012_file.dat'用于我在每个目录中所做的事情,这里不相关。)

我需要的是这样的(注意这是伪代码):

variable

如何进行循环和变量命名?提前谢谢。

4 个答案:

答案 0 :(得分:1)

使用format

for i in list_of_is:
    filename = "mbr{0:02d}_file.dat".format(i)

答案 1 :(得分:1)

这样的事情怎么样?

for i in range(1, 21):
    dn =  "./mbr{:03}".format(i)
    var = "mbr{:03}_file.dat".format(i)
    os.chdir(dn)
    # Do your stuff here
    #
    #
    os.chdir("..")

答案 2 :(得分:1)

你只需要连接' _files.dat'进入目录名称

import re
for i in mbr_list:
    variable = i + '_files.dat'
    # use regex if you only interest on the numeric part
    # variable = re.sub('mbr(\d+)', r'mbr\1_file.dat', i)
    # do your thing here

答案 3 :(得分:1)

在python 3.4及更高版本中,您可以使用pathlib;在python 3.6及更高版本中,您可以使用“ f string”来设置文本格式

viewModel.startService.observe(this, Observer {
        if (it) {
            startService()
            viewModel.startService.value = false
        }
})