字符串中的通配符作为输入

时间:2018-09-19 14:12:23

标签: string python-3.x wildcard filenames

我有一个变量,它是过程的输入。其本质上是文件的完整路径名,但会基于列表注入值以获取正确的名称:

 fipsList = ['06001','06037','06059']
 for fip in fipsList:
     file = r"T:\CCSI\TECH\FEMA\Datasets\NFHL\NFHL_06122018\NFHL_{}_20180518.gdb".format(fip)"

我现在想做的是将"...NFHL_{}_....gdb"之间的所有内容都设为通配符“ *”。只需使用file = r"T:\CCSI\TECH\FEMA\Datasets\NFHL\NFHL_06122018\NFHL_{}_*.gdb".format(fip)" 似乎不起作用。本质上,这就是产生的结果:   >>>'T:\\CCSI\\TECH\\FEMA\\Datasets\\NFHL\\NFHL_06122018\\NFHL_06_*.gdb'。有关如何使其工作的建议?

2 个答案:

答案 0 :(得分:1)

也许是一些老好人吗?

赞:

fipsList = ['06001','06037','06059']
for fip in fipsList:
    file = "T:\CCSI\TECH\FEMA\Datasets\NFHL\NFHL_06122018\NFHL_{}_" + fip + ".gdb"

答案 1 :(得分:0)

仅以这种方式在字符串中添加“ *”将不起作用。问题的设置很糟糕(我自己的错),但是为了澄清起见,这是我解决问题的方法:

 fipsList = ['06001','06037','06059']
 for fip in fipsList:
     path = r"T:\CCSI\TECH\FEMA\Datasets\NFHL\NFHL_06122018"
     for root, dirs, filename in os.walk(path):
        for dir in dirs:
            if('NFHL_' + fip[:2] in dir and '.gdb' in dir):
                file = os.path.join(root, dir)

从本质上讲,我必须遍历该文件夹并使用一个if条件,以确保同时具有fip值和.gdb扩展名的条件。