博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 判断 windows 隐藏文件/系统文件
阅读量:6466 次
发布时间:2019-06-23

本文共 2357 字,大约阅读时间需要 7 分钟。

linux 下隐藏文件是以句号 “.” 开头的文件,根据文件名即可判断是否为隐藏文件。

win 下是以文件隐藏属性确定的,所以,只能通过微软的 API 获取隐藏属性来判断是否为隐藏文件。

1. windows attrib 命令获取文件隐藏属性

Syntax      ATTRIB [ + attribute | - attribute ] [pathname] [/S [/D]]Key     +    : Turn an attribute ON     -    : Clear an attribute OFF pathname : Drive and/or filename e.g. C:\*.txt    /S    : Search the pathname including all subfolders.    /D    : Process folders as well   attributes:         R  Read-only (1)        H  Hidden (2)        A  Archive (32)        S  System (4)   extended attributes:        E  Encrypted         C  Compressed (128:read-only)         I  Not content-indexed         L  Symbolic link/Junction (64:read-only)         N  Normal (0: cannot be used for file selection)         O  Offline         P  Sparse file         T  Temporary

2. 隐藏属性值及其含义

Constants - the following attribute values are returned by the  function:

FILE_ATTRIBUTE_READONLY = 1 (0x1)

FILE_ATTRIBUTE_HIDDEN = 2 (0x2)
FILE_ATTRIBUTE_SYSTEM = 4 (0x4)
FILE_ATTRIBUTE_DIRECTORY = 16 (0x10)
FILE_ATTRIBUTE_ARCHIVE = 32 (0x20)
FILE_ATTRIBUTE_NORMAL = 128 (0x80)
FILE_ATTRIBUTE_TEMPORARY = 256 (0x100)
FILE_ATTRIBUTE_SPARSE_FILE = 512 (0x200)
FILE_ATTRIBUTE_REPARSE_POINT = 1024 (0x400)
FILE_ATTRIBUTE_COMPRESSED = 2048 (0x800)
FILE_ATTRIBUTE_OFFLINE = 4096 (0x1000)
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 (0x2000)
FILE_ATTRIBUTE_ENCRYPTED = 16384 (0x4000)

For example, a file attribute of 0x120 indicates the Temporary + Archive attributes are set (0x100 + 0x20 = 0x120.)

3. python 通过 win32api 获取文件隐藏属性

python 官网对 win32API 的简单说明 

下载地址 

import win32file·filenames = [r'D:\test',             r'D:\test\$RECYCLE.BIN',             r'D:\test\.file_test.py.swp',             r'D:\test\file_test.py']for filename in filenames:    print '%4d, %s' %(win32file.GetFileAttributesW(filename), filename)

运行结果:

4. 与运算(&)更直观判断隐藏文件

示例代码如下,& 运算的结果与隐藏属性值相对应,可以更直观的判断文件类型。

import win32fileimport win32confilenames = [r'D:\test',             r'D:\test\$RECYCLE.BIN',             r'D:\test\.file_test.py.swp',             r'D:\test\file_test.py']for filename in filenames:    file_flag = win32file.GetFileAttributesW(filename)    is_hiden = file_flag & win32con.FILE_ATTRIBUTE_HIDDEN    is_system = file_flag & win32con.FILE_ATTRIBUTE_SYSTEM    print '%4d, %s, %s, %s' %(file_flag, is_hiden, is_system, filename)

转载于:https://www.cnblogs.com/misspy/p/3615007.html

你可能感兴趣的文章
Swift - 使用set,get确保索引加减在正常的范围内
查看>>
编码与乱码(05)---GBK与UTF-8之间的转换--转载
查看>>
HTTP 头部详细解释
查看>>
Linux优化之IO子系统监控与调优
查看>>
opengl剪裁空间和视口空间中不遵从右手定则,而是遵从左手定则
查看>>
Vim经常使用技巧总结1
查看>>
经FreeMarkerclasspath加载方式生成静态页面
查看>>
常用中文字体 Unicode 编码
查看>>
echosp 销量排行 新增实际价格
查看>>
Android PackageManager packages.xml文件格式
查看>>
C语言获取文件SHA1哈希
查看>>
js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素...
查看>>
设计师给了px显着的单位,Android要设置多少开发商dip、dp、sp?
查看>>
快速入门:十分钟学会Python(转)
查看>>
Android4.2.2由于越来越多的物理按键(frameworks)
查看>>
C++ friend 用法汇总
查看>>
Java:正则表达式的详解
查看>>
【转】互联网时代的关键人物:大公司的小领导
查看>>
Android有效解决加载大图片时内存溢出的问题
查看>>
WPF笔记(2.7 文字布局)——Layout
查看>>