根据老婆的需求做的小程序:遍历文件夹下所有文件,如果有版本号则加入版本号,如果没有版本号则加入修改时间。最后返回一个字典,key是路径,value是版本号/修改时间。
具体代码如下:
import os import os.path import win32api import time def getFileName(rootdir): file = [] for parent, dirnames, filenames in os.walk(rootdir): for f in filenames: file.append([parent, f]) return file def getFileVersion(file_name): info = win32api.GetFileVersionInfo(file_name, os.sep) ms = info['FileVersionMS'] ls = info['FileVersionLS'] version = '%d.%d.%d.%04d' % (win32api.HIWORD(ms), win32api.LOWORD(ms), win32api.HIWORD(ls), win32api.LOWORD(ls)) return version getFileTime = lambda file: time.ctime(os.stat(file).st_mtime) #print getFileTime('d:/rizhi/12yue/ex121013.log') res = {} rootdir = 'd:/rizhi' file = getFileName(rootdir) for n in file: filePath = (n[0] + '/' + n[1]).replace('\\', '/') try: version = getFileVersion(filePath) except: modiTime = getFileTime(filePath) res[filePath] = modiTime else: res[filePath] = version print res
其中遍历文件夹部分参考了jihate的文章(http://www.cnblogs.com/kaituorensheng/archive/2012/08/14/2638935.html),获取版本号部分参考了Sephiroth的文章(http://www.oschina.net/code/snippet_16840_1863)。惭愧的是,后者的win32API还不懂。