编写一个python脚本,遍历文件夹并列出每个文件和大小

时间:2015-05-07 15:59:51

标签: python arcpy

我很难找到一种编写脚本的方法,该脚本将遍历ArcGIS数据文件夹,并将文件夹中每个功能的名称和大小报告给csv文件,以便我可以创建数据目录存储在。存储在文件夹中的数据是整个地理数据库旁边的单个要素类。

2 个答案:

答案 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))