arcpy.CalculateField_management를 사용하여 속성 테이블에 현재 날짜를 추가하는 도구 부분을 작업 중입니다. 나는 인터 웹에서 광범위하고 방황 했으며이 문제에 대한 해결책을 찾지 못하는 것 같습니다.
이 코드를 사용할 때 “12:00:00 AM”값을 얻습니다.
input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
today = datetime.date.today()
dte = today.strftime('%m/%d/%Y')
arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON")
이 코드를 사용할 때 오늘 날짜 “10/07/2014″에서 “06/19/1905″값을 얻습니다.
input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
today = datetime.date.today()
dte = str(today)
arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON")
내가 뭘 잘못하고 있는지 생각해? 업데이트 커서 사용을 피하고 싶지만 마지막 옵션 인 경우 업데이트 커서를 사용합니다.
답변
업데이트 커서는 100 %의 시간 동안 필드 계산기를 수행합니다.
이것을 표현식으로 작성해야합니다.
import arcpy, datetime
fc = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
field = "DTCARXTRCT"
exp = '''def add_date():
import time
return time.strftime("%Y/%m/%d")'''
arcpy.CalculateField_management(fc, field, 'add_date()',
'PYTHON', exp)
print 'done'
datetime.date.today ()가 필드 계산기에서 작동하지 않고 strftime으로 전환되었습니다.
또는 자신의 변수를 제공 할 수있는 더 나은 방법을 원한다면 커서를 사용하십시오.
import arcpy, datetime
fc = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
field = "DTCARXTRCT"
with arcpy.da.UpdateCursor(fc, [field]) as rows:
for row in rows:
rows.updateRow([datetime.date.today()])
print 'done'
답변
다음을 사용하십시오.
time.strftime("%Y/%m/%d")