Создание оператора 'или' в списке 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)