使用.format结合日期重命名Shapefile时出现语法错误,请求排查
Shapefile重命名语法错误修复
错误根源
代码里的datetime.datetime.now(%y_%m_%d)写法不符合Python语法:datetime.now()方法不需要传入格式化参数,正确流程是先获取当前时间对象,再用strftime()方法生成指定格式的日期字符串。
修正后的完整代码
import datetime import os import arcpy # 重命名Shapefile txtFileNameWithExt = "Open_Restaurants.shp" # 生成指定格式的当前日期字符串 current_date_str = datetime.datetime.now().strftime("%y_%m_%d") # 拼接新文件名(不含扩展名) txtFileNameNoExt = "{}_{}".format(os.path.splitext(txtFileNameWithExt)[0], current_date_str) arcpy.env.workspace = my_Path # 执行重命名 arcpy.Rename_management(txtFileNameWithExt, "{}.shp".format(txtFileNameNoExt))
补充说明
- 必须确保代码开头已经导入
datetime模块,否则会触发NameError - 如果需要四位年份的日期格式,把
"%y_%m_%d"改成"%Y_%m_%d",会生成类似2024_05_20的字符串
内容的提问来源于stack exchange,提问作者Kylie
相关产品推荐
相关产品推荐

