如何使用Python在Windows Vista上访问文件属性?

时间:2009-09-27 23:17:32

标签: python winapi windows-vista properties

问题就像在标题中一样简单,如何使用Python访问日期修改等Windows文件属性,更具体地说是标签?对于我正在做的程序,我需要获取特定文件夹中各种文件的所有标记列表,我不知道如何执行此操作。我有win32模块,但我看不到我需要的东西。

谢谢大家,但是,对于快速响应,我需要的主要统计数据是现在包含在windows vista中的tags属性,不幸的是,os.stat和stat模块中没有包含这些属性。但是,谢谢你,因为我确实也需要这些数据,但这更像是我的一个想法。

4 个答案:

答案 0 :(得分:7)

您可以将os.statstat

一起使用
import os
import stat
import time

def get_info(file_name):
    time_format = "%m/%d/%Y %I:%M:%S %p"
    file_stats = os.stat(file_name)
    modification_time = time.strftime(time_format,time.localtime(file_stats[stat.ST_MTIME]))
    access_time = time.strftime(time_format,time.localtime(file_stats[stat.ST_ATIME]))
    return modification_time, access_time

您可以获得许多其他统计数据,请查看统计模块以获取完整列表。 要提取文件夹中所有文件的信息,请使用os.walk

import os
for root, dirs, files in os.walk(/path/to/your/folder):
    for name in files:
        print get_info(os.path.join(root, name))

答案 1 :(得分:3)

显然,您需要使用Windows Search API查找System.Keywords - 您可以通过ctypes直接访问API,也可以通过API间接访问API(需要win32 extensionsCOM Interop集会。对不起,我没有要检查的vista安装,但我希望这些链接很有用!

答案 2 :(得分:1)

示例:

import time, datetime
fstat = os.stat(FILENAME)
st_mtime = fstat.st_mtime # Date modified
a,b,c,d,e,f,g,h,i = time.localtime(st_mtime)
print datetime.datetime(a,b,c,d,e,f,g)

答案 3 :(得分:1)

(您可能会注意到线程another上给出的以下响应的较长版本。)

  1. 下载并安装pywin32 extension
  2. Grab the code Tim Golden写了这个任务。
  3. 将Tim的代码保存为您自己计算机上的模块。
  4. 调用新模块的property_sets方法(提供必要的文件路径)。该方法返回一个可迭代的生成器。请参阅以下示例代码和输出。