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

3 投票
4 回答
8023 浏览
提问于 2025-04-15 14:38

这个问题很简单,标题上已经说得很清楚了,我想知道怎么用Python访问Windows文件的属性,比如修改日期,还有更具体的标签。因为我正在做一个程序,需要获取某个文件夹里各种文件的所有标签列表,但我不知道该怎么做。我有win32模块,但我找不到我需要的东西。

谢谢大家的快速回复,不过我现在最需要的文件信息是标签属性,这个在Windows Vista中引入了,但遗憾的是,这个信息不在os.stat和stat模块里。不过还是感谢你们,因为我确实也需要这些数据,只是我之前没有想到。

4 个回答

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

看起来,你需要使用 Windows搜索API 来查找 系统关键词。你可以通过 ctypes 直接访问这个API,或者通过需要 win32扩展 的方式间接访问,使用API的 COM互操作 组件。抱歉,我没有Vista系统来检查,但希望这些链接对你有帮助!

7

你可以使用 os.stat 结合 stat 来获取文件的状态信息。

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

你还可以获取很多其他的状态信息,想了解完整的列表可以查看 stat 模块。要提取文件夹中所有文件的信息,可以使用 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))

撰写回答