Commenti
Risposta
 Il tuo arcpy.env.workspace percorso – F:\raster_test – probabilmente “non esiste o arcpy non ha accesso ad esso. arcpy.ListRasters() restituirà un elenco vuoto [] se non vengono trovati raster, ma restituirà None se il percorso non è” t trovato: 
Il percorso esiste:
arcpy.env.workspace = r"C:\Temp" # Does Exist rasters = arcpy.ListRasters("*.tif) print rasters 
Restituirà:
[] 
Il percorso non non esiste:
arcpy.env.workspace = r"C:\Temp2" # Does NOT Exist rasters = arcpy.ListRasters("*.tif) print rasters 
produrrà:
None 
Risposta
… inoltre, il backup più vicino allinizio del codice è questa riga difettosa (\ r è una sequenza di escape in Python):
arcpy.env.workspace = "F:\raster_test" # Does NOT Exist 
Se F: \ raster_test è un percorso valido (e contiene raster), dovrebbe funzionare bene:
arcpy.env.workspace = r"F:\raster_test" # Does Exist 
Vedi la sezione della documentazione di Python su stringhe letterali .
Commenti
- +1 @Sujai Questo è un classico trucco in Python (almeno su Windows). " \ r " è la sequenza di escape per un ritorno a capo. Una versione più aggiornata (sebbene le effettive sequenze di fuga non siano ' t modificata) è docs.python.org/2/reference/ lexical_analysis.html # strings
 - Tu ' hai ragione, Luke …. link nella risposta aggiornato al link più recente. Molte altre cose interessanti in quella pagina.
 
Rispondi
 Non sono sicuro di cosa stia causando il tuo NoneType errore, arcpy.ListRasters() restituirebbe un elenco vuoto e mai un NoneType se non cerano raster trovato. Prova: 
import arcpy import os from arcpy.sa import ExtractByMask out_dir = r"F:\clipped_images" arcpy.env.workspace = r"F:\raster\test" arcpy.CheckOutExtension("Spatial") mask = r"F:\shapefile\Export_Output.shp" for raster in arcpy.ListRasters("*.tif"): output_raster = os.path.join(out_dir, os.path.splitext(raster)[0] + "_clip.tif") ExtractByMask(raster, mask, output_raster) arcpy.CheckInExtension("Spatial") 
Risposta
 Credo che i vari Le List funzioni (ListTables, ListFeatureclasses e così via) restituiscono sempre None se non sono presenti tipi corrispondenti nello spazio di lavoro specificato. Esegui un rapido if test logico per la tua variabile di elenco. 
rasters = arcpy.ListRasters ("*.TIF") if rasters: your code here 
.TIFFfile da includere e.TIF