我有一个变量,它是过程的输入。其本质上是文件的完整路径名,但会基于列表注入值以获取正确的名称:
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'
。有关如何使其工作的建议?
答案 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
扩展名的条件。