datetime.date.today ()에서 오늘 날짜로 날짜 필드를 계산합니까? 찾지 못하는 것 같습니다. 이

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")