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

Wildcard in string as input

我有一个变量,它是流程的输入。它本质上是一个文件的完整路径名,但是根据列表注入一个值以获得正确的名称:

 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'。关于如何让它工作的建议?

也许是一些古老的好连接?

喜欢:

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

以这种方式简单地将“*”添加到字符串中是行不通的。问题的设置很差(我自己的错),但为了澄清起见,这是我解决问题的方法:

 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 扩展名的条件。