我有一个可以正常工作的脚本,但是当我第二次运行它时却没有,因为它使输出文件名保持不变。我一般对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
,等等。
答案 0 :(得分: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",
)