需求描述
需要批量重命名ArcGIS Pro的gdb数据库里的一系列名称有规律的文件
例子:以表为例,其他数据类型同理
数据状态:多个表文件,文件名中有年份数字,从2000到2022年,名称为Old_File_Too_Long_2000_tif一直到Old_File_Too_Long_2022_tif
上述表文件是“以表格显示分区统计”时批量生成的,表名根据原始tif文件名添加几个字母而生成,导致文件名太长了,担心会出错
而且因为是存储在gdb里,没有.xlsx这样的后缀名,容易把表文件和tif文件看混淆,所以需要改名
困难:如果是在硬盘里批量修改文件名,有很多方法都能做到,比如Rename Master软件
但gdb数据库里的文件,只能在ArcGIS等软件里才能看到,电脑资源管理器里看不到文件名,是加密的
实现方法
以下代码,修改数据库目录地址及年份后,粘贴到ArcGIS Pro的Python Notebook中运行
(因此不需要写import arcpy即可运行)
import os
dir_gdb = r"D:\Data\MyProject.gdb"
year = 2000
while year < 2023:
old_filename = "Old_File_Too_Long_" + str(year) + "_tif"
new_filename = "New_" + str(year)
old_filepath = os.path.join(dir_gdb, old_filename)
new_filepath = os.path.join(dir_gdb, new_filename)
arcpy.management.Rename(old_filepath, new_filepath, "Table")
year = year + 1
"Table"表示这个例子中要转换的数据类型是表
运行完毕后,Old_File_Too_Long_2022_tif重命名为New_2022,其他文件同理
注意:左边已经加载的图层,不会被改名,因为图层是对数据集的引用
官网Arcpy的Rename命令讲解
arcpy.management.Rename(in_data, out_data, {data_type})
名称 | 说明 | 数据类型 |
in_data | 要重命名的输入数据。 | Data Element |
out_data | 输出数据的名称。 | Data Element |
data_type (可选) | 要重命名的数据的类型。 只有在地理数据库中的要素数据集和要素类名称相同时,才需要提供一个值。 在这种情况下,需要为希望重命名的项选择数据类型(要素数据集或要素类)。 | String |
官网单个文件重命名代码示例
Rename 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用 Rename 函数。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.Rename("customers.dbf", "customers_2010.dbf")
Rename 示例 2(独立脚本)
以下 Python 脚本演示了如何在独立脚本中使用 Rename 函数。
# Name: Rename_Example2.py
# Description: Rename fileGDB feature class
# Import system modules
import arcpy
# Set workspace
arcpy.env.workspace = "C:/workspace/test.gdb"
# Set local variables
in_data = "test"
out_data = "testFC"
data_type = "FeatureClass"
# Run Rename
arcpy.management.Rename(in_data, out_data, data_type)