如何在Python中增加输出文件名

问题描述 投票:0回答:1

我有一个可行的脚本,但是当我第二次运行它时它没有,因为它一直保存输出文件名。我对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之后的时间,等等。

python output filenames
1个回答
0
投票

如果要在文件名中使用数字,可以检查该目录中已存在哪些具有相似名称的文件,取最大值,并将其递增1。然后将此新数字作为文件名的字符串中的变量传递。

例如:

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",
)
© www.soinside.com 2019 - 2024. All rights reserved.