我正在尝试以下代码:

os.stat(path_name)[stat.ST_CTIME] = ctime


但是,这产生以下错误:

exceptions.TypeError: 'posix.stat_result' object does not support item assignment


反正有修改ctime吗?

谢谢!

最佳答案

os.utime(filename, timetuple)可用于设置文件的atime和mtime。据我所知,没有办法在没有使用hack的情况下从用户域修改ctime,例如玩时钟或文件系统的直接版本(我不建议这样做),这对于任何编程语言都是正确的(Python) ,Perl,C,C ++ ...):它是内部操作系统的东西,您不想碰它。

例如,请参见touch命令的文档(http://www.delorie.com/gnu/docs/fileutils/fileutils_54.html):


  尽管touch提供了以下选项
  改变两次-时代
  最后访问和修改的
  一个文件,实际上有第三个
  以及:inode更改时间。这个
  通常称为文件的
  ctime。索引节点更改时间
  表示文件的
  元信息上次更改。一
  常见的例子是
  文件更改权限。改变中
  权限无法访问
  文件,因此atime不会更改,也不会
  它会修改文件吗,所以mtime
  不会改变。但是,关于
  文件本身已更改,这
  必须在某处注明。这是
  ctime字段的工作。这是
  必要的,例如
  备份程序可以进行全新复制
  的文件,包括新的
  权限值。另一操作
  无需修改文件的ctime
  重命名其他人。在
  无论如何,在
  正常操作,供用户
  将ctime字段更改为
  用户指定的值。

关于python - 无论如何,是否可以使用Python或任何语言手动修改统计信息,例如mtime或ctime?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5803765/

10-12 15:57