Создание оператора 'или' в списке Python

Итак, я попробовал несколько способов поиска своей проблемы, но, похоже, ничто не дает мне точного ответа, который я ищу. Вот мой код для контекста:

# Import arcpy module
import arcpy
arcpy.env.overwriteOutput = True
arcpy.env.workspace = "F:\\dir"

# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")

# Local variable:
Inpoints = "F:\\dir\\x.shp"

fdata = "_01,_02,_03,_04,_05,_06,_07,_08,_09,_10,_11,_12"
fdata = fdata.split(",")

#initalizing the list
Inraster = []

#build list of inputs
   for year in range (1983, 2014):
     for line in fdata:
      date = str(year)+line
      Inraster1 = ["rfe"+date+".tif", date]

    Inraster.append(Inraster1)

# Process: Extract Multi Values to Points

arcpy.gp.ExtractMultiValuesToPoints_sa(Inpoints, Inraster, "NONE")

Для строки fdata я хотел бы, чтобы она читалась как или, поэтому она не ищет каждый растр, поскольку некоторые из растров в диапазонах для разных лет не существуют (например, месяц 1 1985 может существовать, но месяц 1 в 2003 году нет).

Не уверен, имеет ли это смысл?

(Примечания: использование python 2.7)

1 ответ

Решение
import os

BASEDIR = "f:\\dir"

#build list of inputs
Inraster = []
for year in range (1983, 2014):
    for month in range(1, 13):
        fname = "ref{:04d}_{:02d}.tif".format(year, month)
        # is there actually a file by this name?
        if os.path.isfile(os.path.join(BASEDIR, fname)):
            Inraster.append(fname)
Другие вопросы по тегам