斯潘8
斯潘4
大家好,
我修改了TakashiIIjima创建的FilePropertyExtractor来满足我的需求,但是它似乎没有正确地存储属性值。
下面pythoncaller中的python代码是从一个文件夹中获取多个文件并获取文件的创建日期(修改后,等…
它运行无误。因为我文件夹中的文件的创建日期不同,我希望输出也会相应地跟随,但不知何故,每个输出行只显示一个日期。
但print语句显示的值不同。
我怀疑我一定错过了确保正确存储和返回值的部分。
请帮我更正一下。
#由三岛高雄最初实施,2016-05-25这是一个修改过的版本导入FME,fmeobjectsimport osdef extractfileproperty(feature):在os.listdir(path):fullfilename=os.path.join(path,file)中尝试:path=feature.getattribute(“filepropertyextractor.path”),如果os.path.exists(fullfilename)而不是os.path.islink(fullfilename):s=os.stat(fullfilename)feature.setattribute(“文件类型”,'file'if os.path.isfile(fullfilename)else'directory')'feature.setattribute('\u file\u size',s.st“大小”feature.setattribute(“文件时间”,int(s.st\u atime))'feature.setattribute(''文件时间',int(s.st_time))feature.setattribute(''u file_time',int(s.st ctime))print(int(s.st ctime))else:引发异常(“指定的文件/目录不存在”),exception as ex:feature.setattribute(“filepropertyextractor.error”,“%s”%EX
您好!@亨芬林,如果需要提取指定目录下每个文件的文件属性,你必须定义一个班而不是函数。这是一个例子(省略了错误处理)。
import osclass filepropertyextractor(对象):def input(self,如果os.path.exists(dir)和os.path.isdir(dir)而不是os.path.islink(dir):for file in os.listdir(dir):path=os.path.join(dir,则为dir=feature.getattribute(“filepropertyextractor.path”)。文件)如果不是os.path.islink(路径):s=os.stat(路径)feature.setattribute(“文件名”,文件)feature.setattribute(“文件类型”,如果os.path.isfile(path)else“directory”)feature.setattribute(“文件大小”,s.st_-size)feature.setattribute(“文件时间”,int(s.st\u atime))feature.setattribute(“文件时间”,int(s.st_time))feature.setattribute(''u file_time',int(s.st-ctime))self.pyoutput(功能)
然而,在这种情况下,将“是”设置为“检索文件属性”参数可能更容易使用目录和文件路径名(路径)读取器。
?2019安全亚搏在线软件公司|合法的