Первый вариант: обернуть gp.CalculateField_management(...)
в попытку / исключение, например:
try:
gp.CalculateField_management(...)
except SyntaxError:
pass
Это должно позволить вашему сценарию продолжать работу, но я не уверен, в каком состоянии будет gp
.
Лучшим вариантом будет предварительная обработка каждого файла и работа с полями, в которые вставлены новые строки; что-то вроде:
for fc in fcs:
fix_bad_fields(fp)
gp.Calculatate...
и fix_bad_fields выглядит примерно так (вам придется исследовать это, поскольку я незнаком с файлами .shp - я сделаю вид, что он позволяет записывать обратно в тот же файл, но если нет, вам придется сделать некоторое копирование и переименование):
def fix_bad_fields(filename):
data_file = open_shp_file(filename)
for row in data_file:
row[0] = row[0].replace('\n', '')
row[1] = row[1].replace('\n', '')
row1.put_changes_on_disk() # force changes to disk (may not be necessary)
data_file.close()
Множество догадок в этих подробностях, но, надеюсь, это даст вам идею и достаточно для продолжения.