python库|python 查看、修改文件属性

In [132]:import os# 查看文件属性 In [133]: os.stat('package-lock.json') Out[133]: os.stat_result(st_mode=33206, st_ino=7036874417947173, st_dev=651824810, st_nlink=1, st_uid=0, st_gid=0, st_size=304, st_atime=1523547919, st_mtime=1523547919, st_ctime=1523547919)

  • st_mode: inode 保护模式
  • st_ino: inode 节点号。
  • st_dev: inode 驻留的设备。
  • st_nlink: inode 的链接数。
  • st_uid: 所有者的用户ID。
  • st_gid: 所有者的组ID。
  • st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
  • st_atime: 上次访问的时间。
  • st_mtime: 最后一次修改的时间。
  • st_ctime: 由操作系统报告的”ctime”。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
Help on built-in function utime in module posix:utime(...) utime(path, (atime, mtime)) utime(path, None)Set the access and modified time of the file to the given values.If the second form is used, set the access and modified times to the current time.

In [141]: !touch test.txtIn [143]: os.stat('test.txt') Out[143]: os.stat_result(st_mode=33206, st_ino=14355223812719680, st_dev=651824810, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1532879422, st_mtime=1532879422, st_ctime=1532879404)In [146]: test_stat = os.stat('test.txt')In [147]: test_stat.st_mtime Out[147]: 1532879422.2283707# 查看文件的修改时间 In [149]: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(test_stat.st_mtime)) Out[149]: '2018-07-29 23:50:22'# 查看文件的上次访问时间 In [150]: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(test_stat.st_atime)) Out[150]: '2018-07-29 23:50:22'# 设置新的修改时间,并转为时间戳 In [153]: test_new_mtime = time.mktime(time.strptime('2017-07-29 23:50:22', '%Y-%m-%d %H:% ...: M:%S'))# 设置新的上次访问时间,并转为时间戳 In [154]: test_new_atime = time.mktime(time.strptime('2016-07-30 23:50:22', '%Y-%m-%d %H:% ...: M:%S'))# 修改上次访问时间、修改时间 In [155]: os.utime('test.txt', (test_new_atime, test_new_mtime))# 获取修改后的文件属性 In [156]: new_test_stat = os.stat('test.txt')# 查看修改后的修改时间 In [160]: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(new_test_stat.st_mtime)) Out[160]: '2017-07-29 23:50:22'# 查看修改后的上次访问时间 In [161]: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(new_test_stat.st_atime)) Out[161]: '2016-07-30 23:50:22'

    推荐阅读