пропуск существующих файлов в pyton2.7
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 13 сен 2011, 19:56
- Репутация: 0
пропуск существующих файлов в pyton2.7
Здравствуйте
Нужна помощь: для обработки большого количества файлов использую скрипт написан на pyton2.7 иногда выбивает ошибку и скрипт останавливается, причины разные, но дважды для одного файла не повторяются.
Есть команда, при повторении перезаписать env.overwriteOutput = True но это занимает большое количество времени.
- Какую команду можно использовать, чтобы пропустить определенную операцию для существующих файлов?
- Или как заставить обрабатывать файлы сортирую по возрастании за именем
Нужна помощь: для обработки большого количества файлов использую скрипт написан на pyton2.7 иногда выбивает ошибку и скрипт останавливается, причины разные, но дважды для одного файла не повторяются.
Есть команда, при повторении перезаписать env.overwriteOutput = True но это занимает большое количество времени.
- Какую команду можно использовать, чтобы пропустить определенную операцию для существующих файлов?
- Или как заставить обрабатывать файлы сортирую по возрастании за именем
-
- Активный участник
- Сообщения: 163
- Зарегистрирован: 28 июн 2012, 01:02
- Репутация: 84
- Откуда: Vladivostok
Re: пропуск существующих файлов в pyton2.7
Если ArcGIS 10.x или новее, то для пропуска существующих файлов можно использовать конструкцию типа:
Или же так, если проверять нужно только реальные файлы, а не классы в базе, например:
А последний пункт вашего поста вообще не понял.
Код: Выделить всё
import arcpy
if not arcpy.Exists(path_to_file):
do_stuff()
Или же так, если проверять нужно только реальные файлы, а не классы в базе, например:
Код: Выделить всё
import os
if not os.path.exists(path_to_file):
do_stuff()
А последний пункт вашего поста вообще не понял.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 13 сен 2011, 19:56
- Репутация: 0
Re: пропуск существующих файлов в pyton2.7
спасибо за помощь
выдает такую ошибку:
нужно если существует такой файл повторить первую операцию с другим файлом. Я так понимаю если повториний не будет пойдут все остальные операции в цикле?
вот сам код :
выдает такую ошибку:
Код: Выделить всё
Traceback (most recent call last):
File "H:\scripts\JAXA_7.py", line 8, in <module>
do_stuff()
NameError: name 'do_stuff' is not defined
Код: Выделить всё
arcpy.CopyRaster_management
вот сам код :
Код: Выделить всё
import arcpy
from arcpy import env
from arcpy.sa import *
# Overwrite pre-existing files
if not arcpy.Exists("out_rasterdataset"):
do_stuff()
env.workspace = "H:/JAXA_7/"
remap = RemapValue([[1,1], [2,"NoData"], [3, "NODATA"]])
# Get a list of ESRI GRIDs from the workspace
rasterList = arcpy.ListRasters("*", "dat")
for raster in rasterList:
Raster_rec=env.workspace + "/2_recl/"+ raster[:-9] + "_recl.img"
Raster_agg=env.workspace + "/3_agg/"+ raster[:-9] + "_agg.img"
Raster_mos=env.workspace + "/4_mos/"
print raster
# Check out Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Copy raster to img
out_rasterdataset = env.workspace + "/1_copy/"+ raster[:-9] + ".img"
arcpy.CopyRaster_management(raster, out_rasterdataset)
print "Copied to img"
#Reclass the rasters to exclude the background value
outReclassify = Reclassify(out_rasterdataset, "Value", remap)
outReclassify.save(Raster_rec)
print "Reclassified"
# Execute Aggregate
outAggreg = Aggregate(Raster_rec, "3","SUM","EXPAND","DATA")
outAggreg.save(Raster_agg)
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 13 сен 2011, 19:56
- Репутация: 0
Re: пропуск существующих файлов в pyton2.7
спасибо, тепер работает
вот исправлен код :
Код: Выделить всё
if not arcpy.Exists(out_rasterdataset):
arcpy.CopyRaster_management(raster, out_rasterdataset)
Код: Выделить всё
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "H:/JAXA_7/"
remap = RemapValue([[1,1], [2,"NoData"], [3, "NODATA"]])
# Get a list of ESRI GRIDs from the workspace
rasterList = arcpy.ListRasters("*", "dat")
for raster in rasterList:
Raster_rec=env.workspace + "/2_recl/"+ raster[:-9] + "_recl.img"
Raster_agg=env.workspace + "/3_agg/"+ raster[:-9] + "_agg.img"
Raster_mos=env.workspace + "/4_mos/"
print raster
# Check out Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Copy raster to img
out_rasterdataset = env.workspace + "/1_copy/"+ raster[:-9] + ".img"
if not arcpy.Exists(out_rasterdataset):
arcpy.CopyRaster_management(raster, out_rasterdataset)
print "Copied to img"
#Reclass the rasters to exclude the background value
outReclassify = Reclassify(out_rasterdataset, "Value", remap)
outReclassify.save(Raster_rec)
print "Reclassified"
# Execute Aggregate
outAggreg = Aggregate(Raster_rec, "3","SUM","EXPAND","DATA")
outAggreg.save(Raster_agg)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей