Как увеличить выходное имя файла в Python - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть скрипт, который работает, но когда я запускаю его второй раз, он не работает, потому что он сохраняет то же имя выходного файла.Я очень новичок в Python и в программировании в целом, так что вы глупые ответы вниз ... а затем еще немного.:)

arcpy.gp.Spline_sa("Observation_RegionalClip_Clip", "observatio", "C:/Users/moshell/Documents/ArcGIS/Default.gdb/Spline_shp16", "514.404", "REGULARIZED", "0.1", "12")

Где Spline_shp16 - имя выходного файла, я хотел бы сохранить его как Spline_shp17 при следующем запуске сценария, а затем Spline_shp18 после этого и т. Д.

1 Ответ

0 голосов
/ 28 февраля 2019

Если вы хотите использовать числа в именах файлов, вы можете проверить, какие файлы с похожими именами уже существуют в этом каталоге, взять самый большой и увеличить его на единицу.Затем передайте этот новый номер как переменную в строке для имени файла.

Например:

import glob
import re

# get the numeric suffixes of the appropriate files
file_suffixes = []
for file in glob.glob("./Spline_shp*"):
    regex_match = re.match(".*Spline_shp(\d+)", file)
    if regex_match:
        file_suffix = regex_match.groups()[0]
        file_suffix_int = int(file_suffix)
        file_suffixes.append(file_suffix_int)


new_suffix = max(file_suffixes) + 1 # get max and increment by one
new_file = f"C:/Users/moshell/Documents/ArcGIS/Default.gdb/Spline_shp{new_suffix}" # format new file name

arcpy.gp.Spline_sa(
    "Observation_RegionalClip_Clip",
    "observatio",
    new_file,
    "514.404",
    "REGULARIZED",
    "0.1",
    "12",
)

В качестве альтернативы, если вы просто заинтересованы в создании уникальных имен файлов, чтобы ничего не перезаписывалось,Вы можете добавить метку времени в конец имени файла.Таким образом, у вас есть файлы с такими именами, как «Spline_shp-1551375142», например:

import time

timestamp = str(time.time())
filename = "C:/Users/moshell/Documents/ArcGIS/Default.gdb/Spline_shp-" + timestamp
arcpy.gp.Spline_sa(
    "Observation_RegionalClip_Clip",
    "observatio",
    filename,
    "514.404",
    "REGULARIZED",
    "0.1",
    "12",
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...