我很难找到一种编写脚本的方法,该脚本将遍历ArcGIS数据文件夹,并将文件夹中每个功能的名称和大小报告给csv文件,以便我可以创建数据目录存储在。存储在文件夹中的数据是整个地理数据库旁边的单个要素类。
答案 0 :(得分:2)
一起尝试glob和os:
import os
import glob
outputfile = 'GIS_Directory'
#Creates header row of output csv file
with open(outputfile +'.csv', 'a') as summary:
summary.write('File Name,File Size' + '\n')
#Loop walks through all files of designated extension
#and writes new line to output csv file
for file in glob.glob(r'<pathname>\*.<extension>'):
filename = os.path.basename(file)
filesize = os.path.getsize(file)
with open(outputfile +'.csv', 'a') as summary:
summary.write(str(filename) + ',' +
str(filesize) + '\n')
请注意,getsize以字节为单位报告文件大小,因此您应调整代码以针对要输出的单位计算它。因此,您必须为文件夹中的每个扩展类型重复for循环;我不确定哪些扩展用于单个要素类和地理数据库。
答案 1 :(得分:0)
您无法使用arcpy
访问文件地理数据库要素类的大小。相反,您将需要使用ArcObjects。更多细节here。
否则,在文件地理数据库中列出要素类可以直接使用Walk (arcpy.da):
import arcpy
import os
workspace = r"C:\Users\OWNER\Documents\ArcGIS\Default.gdb"
feature_classes = []
walk = arcpy.da.Walk(workspace, datatype="FeatureClass")
for dirpath, dirnames, filenames in walk:
for filename in filenames:
feature_classes.append(os.path.join(dirpath, filename))