2009-09-27 100 views
3

问题和标题一样简单,我如何使用Python访问Windows文件属性(如日期修改的,更具体的标签)?对于我正在执行的程序,我需要获取特定文件夹中各种文件上所有标签的列表,而且我不确定如何执行此操作。我有win32模块,但我没有看到我需要的。如何使用Python访问Windows Vista上的文件属性?

感谢大家,对于快速反应,然而,我需要从文件中获得的主要属性是现在包含在windows vista中的tags属性,不幸的是,它不包含在os.stat和stat模块中。不过谢谢你,因为我确实也需要这些数据,但这更多的是我后来想到的。

回答

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

例子:

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) 
0

(你可能会注意到你的线程another给出以下响应的一个更长的版本。)

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