当前位置:  开发笔记 > 编程语言 > 正文

检查python中的文件属性

如何解决《检查python中的文件属性》经验,为你挑选了1个好方法。

我想使用python检查目录中每个文件的存档位.到目前为止,我有以下,但我不能让它正常工作.该脚本的想法是能够查看具有存档位的所有文件.

谢谢

# -*- coding: latin-1 -*-
import os , win32file, win32con
from time import *
start = clock()

ext = [ '.txt' , '.doc' ]

def fileattributeisset(filename, fileattr):
    return bool(win32file.GetFileAttributes(filename) & fileattr)

for root, dirs, files in os.walk('d:\\Pruebas'):
    print ("root", root)    
    print ("dirs", dirs)
    print ("files", files)
    for i in files:
        if i[ - 4:] in ext: 
            print('...', root, '\\', i, end=' ')
            fattrs = win32file.GetFileAttributes(i)
            if fattrs & win32con.FILE_ATTRIBUTE_ARCHIVE:
                print('A isSet',fattrs)
        #print( fileattributeisset(i, win32con.FILE_ATTRIBUTE_ARCHIVE)) 
    print ('####')

编辑:所有文件似乎都打开了存档位,执行'attrib'表示所有文件都没有属性位.



1> zdan..:

从os.walk返回的文件列表不是完全限定的路径,因此当您调用时

win32file.GetFileAttributes(i)

它找不到文件并返回错误代码; 恰好是-1.所以操作

fattrs & win32con.FILE_ATTRIBUTE_ARCHIVE 

总是如此.

您需要将根连接到文件名,以便GetFileAttributes成功:

fattrs = win32file.GetFileAttributes(os.path.join(root, i))

此外,当您检查扩展时,最好使用os.path.splitext(path)检索扩展而不是依赖它们,就像您一样长3个字符.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有