加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python打开(文件,vr)应该更新atime吗?

发布时间:2020-12-20 13:28:19 所属栏目:Python 来源:网络整理
导读:每当我使用 Python打开()文件时,最后的访问时间都不会更新,这很奇怪: 如果我用r / rb打开,如果我对文件进行统计,则没有任何变化 如果我用w / r或ctime和mtime更新正常但不是atime 它看起来不像是一个文件系统问题(在这种情况下是ext3),因为如果我触摸或捕捉
每当我使用 Python打开()文件时,最后的访问时间都不会更新,这很奇怪:

如果我用r / rb打开,如果我对文件进行统计,则没有任何变化

如果我用w / r或ctime和mtime更新正常但不是atime

它看起来不像是一个文件系统问题(在这种情况下是ext3),因为如果我触摸或捕捉文件它确实正确更新.

我无法找到很多关于它的信息;是应该这样做还是有问题?

解决方法

请尝试运行mount,并查看是否在已安装的fs上使用了noatime标志.此外,如果你的内核足够新鲜,那么它是默认设置的“relatime”.

“open()”代码非常不言自明,不会乱用ATIME标志:

/* >> fileutils.c from Python 3.2.3 */

FILE*
_Py_fopen(PyObject *path,const char *mode)
{
#ifdef MS_WINDOWS
    wchar_t wmode[10];
    int usize;

    usize = MultiByteToWideChar(CP_ACP,mode,-1,wmode,sizeof(wmode));
    if (usize == 0)
        return NULL;

    return _wfopen(PyUnicode_AS_UNICODE(path),wmode);
#else
    FILE *f;
    PyObject *bytes = PyUnicode_EncodeFSDefault(path);
    if (bytes == NULL)
        return NULL;

    /* >> Plain fopen(),nothing fancy here. */
    f = fopen(PyBytes_AS_STRING(bytes),mode);
    Py_DECREF(bytes);
    return f;
#endif
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读