在Python中获取文件属性(隐藏,只读,系统,存档)

时间:2014-11-28 21:29:38

标签: python attributes operating-system chmod stat

刚开始学习Python。如何在Python中获取文件属性的状态?我知道os.chmod(fullname, stat.S_IWRITE)删除了readonly属性,但是如何在不更改状态的情况下获取状态?我需要获得"hidden""system""readonly""archive"

的所有属性

3 个答案:

答案 0 :(得分:3)

您可以直接使用Windows API

import win32con
import win32api
attrs = win32api.GetFileAttributes(filepath)
attrs & win32con.FILE_ATTRIBUTE_SYSTEM
attrs & win32con.FILE_ATTRIBUTE_HIDDEN

答案 1 :(得分:2)

您需要查看模块statos.stat

 os.stat(path)

Perform the equivalent of a stat() system call on the given path. (This function follows symlinks; to stat a symlink use lstat().)

The return value is an object whose attributes correspond to the members of the stat structure, namely:

    st_mode - protection bits,
    st_ino - inode number,
    st_dev - device,
    st_nlink - number of hard links,
    st_uid - user id of owner,
    st_gid - group id of owner,
    st_size - size of file, in bytes,
    st_atime - time of most recent access,
    st_mtime - time of most recent content modification,
    st_ctime - platform dependent; time of most recent metadata change on Unix, or the time of creation on Windows)

答案 2 :(得分:1)

如果您使用的是python 3.4+,则可以使用pathlib stat方法。

from pathlib import Path

print(Path(r"D:\temp\test.txt").stat())

输出:

os.stat_result(
    st_mode=33206, 
    st_ino=204632308068721491, 
    st_dev=67555953, 
    st_nlink=1, 
    st_uid=0, 
    st_gid=0, 
    st_size=4, 
    st_atime=1550757968, 
    st_mtime=1550757968, 
    st_ctime=1550757951
)

here is more information about os.stat_result