Подстановочный знак в строке в качестве ввода - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть переменная, которая является входом для процесса.По сути, это полный путь к файлу, но вводит значение на основе списка, чтобы получить правильное имя:

 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 голосов
/ 20 сентября 2018

Простое добавление '*' в строку таким образом не будет работать.Задача вопроса плохая (моя собственная вина), но для ясности, вот как я решил проблему:

 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.

0 голосов
/ 19 сентября 2018

Может быть, какой-то старый добрый конкат?

Как:

fipsList = ['06001','06037','06059']
for fip in fipsList:
    file = "T:\CCSI\TECH\FEMA\Datasets\NFHL\NFHL_06122018\NFHL_{}_" + fip + ".gdb"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...