I am trying to export attachments from fGDB and populate fields with the picture link path. I created a script following these instructions http://support.esri.com/en/technical-article/000014520
import arcpy from arcpy import da import os arcpy.env.overwriteOutput = True arcpy.env.workspace = r'C:\Users\vincent.law\Documents\POSTPROCESSING\22b0445e7384453293e817762843f540.gdb' inTable = arcpy.ListTables("*ATTACH") fileLocation = r'C:\Users\vincent.law\Documents\POSTPROCESSING\Pictures' for tableattach in inTable: FCname = str(tableattach[:-8]) arcpy.AddField_management (tableattach, "ATTACHMENTID1", "TEXT", "", "", "", "", "NULLABLE") arcpy.CalculateField_management (tableattach, "ATTACHMENTID1", "!ATTACHMENTID!", "Python_9.3") with da.SearchCursor(tableattach, ['DATA', 'ATT_NAME', 'ATTACHMENTID']) as cursor: for item in cursor: attachment = item[0] filenum = FCname + "_" + "ATT" + str(item[2]) + "_" filename = filenum + str(item[1]) open(fileLocation + os.sep + filename, 'wb').write(attachment.tobytes()) del item del filenum del filename del attachment arcpy.AddField_management ("Building", "Picture", "TEXT", "", "", "", "", "NULLABLE") arcpy.MakeFeatureLayer_management ("Building", "Building_lyr") arcpy.CalculateField_management ("Building_lyr", "Picture", "!Picture1!", "PYTHON_9.3") arcpy.AddField_management ("Culvert_Line", "Picture", "TEXT", "", "", "", "", "NULLABLE") arcpy.MakeFeatureLayer_management ("Culvert_Line", "Culvert_Line_lyr") arcpy.CalculateField_management ("Culvert_Line_lyr", "Picture", "!Picture1!", "PYTHON_9.3") arcpy.AddField_management ("Speed_Bump", "Picture", "TEXT", "", "", "", "", "NULLABLE") arcpy.MakeFeatureLayer_management ("Speed_Bump", "Speed_Bump_lyr") arcpy.CalculateField_management ("Speed_Bump_lyr", "Picture", "!Picture1!", "PYTHON_9.3") arcpy.AddField_management ("Bridge", "Picture", "TEXT", "", "", "", "", "NULLABLE") arcpy.MakeFeatureLayer_management ("Bridge", "Bridge_lyr") arcpy.CalculateField_management ("Bridge_lyr", "Picture", "!Picture1!", "PYTHON_9.3") gdb = arcpy.ListFeatureClasses() gdb.remove('Boundary') gdb.remove('Trails') for fc in gdb: fcname1 = '"' + str(fc) + '"' arcpy.AddField_management(fc, "FCname", "TEXT","","","","", "NULLABLE", "NON_REQUIRED") arcpy.MakeFeatureLayer_management(fc, "layer1") arcpy.CalculateField_management("layer1", "FCname", fcname1, "PYTHON_9.3", "") attachtable = str(fc) + "__ATTACH" picturepath = "fileLocation + '\\' + '!FCname!' + '_' + 'ATT' + '!ATTACHMENTID1!' + '_' + '!ATT_NAME!'" arcpy.JoinField_management(fc, "GlobalID", attachtable, "REL_GLOBALID") arcpy.MakeFeatureLayer_management(fc, "layer","REL_GLOBALID IS NOT NULL") arcpy.CalculateField_management("layer","Picture", picturepath, "PYTHON_9.3") arcpy.CalculateField_management ("Speed_Bump_lyr", "Picture1", "!Picture!", "PYTHON_9.3") arcpy.CalculateField_management ("Building_lyr", "Picture1", "!Picture!", "PYTHON_9.3") arcpy.CalculateField_management ("Culvert_Line_lyr", "Picture1", "!Picture!", "PYTHON_9.3") arcpy.CalculateField_management ("Bridge_lyr", "Picture1", "!Picture!", "PYTHON_9.3") arcpy.DeleteField_management("Building", "Picture") arcpy.DeleteField_management("Culvert_Line", "Picture") arcpy.DeleteField_management("Bridge", "Picture") arcpy.DeleteField_management("Speed_Bump", "Picture") I am getting the following error:
Traceback (most recent call last): File "C:\Python27\ArcGISx6410.3\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript exec codeObject in main.dict File "\goa\desktop\T_Z\vincent.law\Desktop\Script1.py", line 62, in arcpy.CalculateField_management("layer","Picture", picturepath, "PYTHON_9.3") File "C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy\arcpy\management.py", line 3457, in CalculateField raise e ExecuteError: ERROR 000539: SyntaxError: invalid syntax (, line 1)
I don't know what's wrong with the syntax for the following:
picturepath = "fileLocation + '\\' +'!FCname!' + '_' + 'ATT' + '!ATTACHMENTID1!' + '_' + '!ATT_NAME!'"