English 中文(简体)
在Python中检查文件属性
原标题:
  • 时间:2009-03-18 19:51:17
  •  标签:

我想使用Python检查目录中每个文件的归档位。到目前为止,我已经有了以下内容,但我无法将其正常运行。脚本的想法是能够查看所有打开的归档位的文件。

谢谢 (xièxiè)

# -*- 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 命令显示所有文件都没有属性位。

最佳回答

os.path.join() to concatenate the directory path with the filename, you may end up with invalid file paths.

win32file.GetFileAttributes(i)

它找不到文件并返回错误代码;这个错误代码是-1。因此这是一个操作。

fattrs & win32con.FILE_ATTRIBUTE_ARCHIVE 

始终如一真实的。

您需要将根路径连接到文件名中,以便GetFileAttributes成功。

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

另外,当您正在检查扩展名时,最好使用 os.path.splitext(path)来检索扩展名,而不是像您所做的那样依赖于它们是3个字符长。

问题回答

暂无回答




相关问题
热门标签