This is an older thread, but since I just had to do this for one of my scripts, I thought I would share the code I used. In my case, I already created a fishnet, as polylines that are clipped by a study area, and then converted the "multipart" segments to "singlepart" (so each segment in separate) ...but it should be able to work with any line. I addfields called x1, y1, x2, y2 for my needs...but you can name whatever works for you.
fishnetFC = r"C:\Prep.gdb\FishnetIntersect_L_single"
ptFields = [["X1", "!SHAPE.firstPoint.X!"], ["Y1", "!SHAPE.firstPoint.Y!"], ["X2", "!SHAPE.lastPoint.X!"], ["Y2", "!SHAPE.lastPoint.Y!"]]
for field in ptFields:
print("adding field {0}...".format(field[0]))
arcpy.AddField_management(fishnetFC, field[0], "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
print(" calcing field {0} to be {1}".format(field[0], field[1]))
arcpy.CalculateField_management(fishnetFC, field[0], field[1], "PYTHON_9.3" )
In any case Jessica, you should mark helpful comments as such, and either mark this as "assumed answered" or the answer that best solved your issue.