我需要为遍历文件系统树的Python 2程序中的每个文件获取完整的纳秒精度修改时间戳.我想在Python本身中这样做,因为为每个文件生成一个新的子进程会很慢.

通过查看stat结果的st_mtime_nsec字段,从Linux上的C库,you can get nanosecond-precision timestamps开始.例如:

#include

#include

int main() {

struct stat stat_result;

if(!lstat("/", &stat_result)) {

printf("mtime = %lu.%lu\n", stat_result.st_mtim.tv_sec, stat_result.st_mtim.tv_nsec);

} else {

printf("error\n");

return 1;

}

}

打印mtime = 1380667414.213703287(/在ext4文件系统上,支持纳秒时间戳,时钟为UTC).

同样,日期–rfc-3339 = ns –reference = / prints 2013-10-01 22:43:34.213703287 00:00.

Python(2.7.3)的os.path.getmtime(filename)和os.lstat(filename).st_mtime将mtime作为float.但是,结果是错误的:

In [1]: import os

In [2]: os.path.getmtime('/') % 1

Out[2]: 0.21370339393615723

In [3]: os.lstat('/').st_mtime % 1

Out[3]: 0.21370339393615723

– 前6位数字是正确的,可能是由于浮点错误.

解决方法:

或者,您可以使用cffi库,它与Python 2一起使用以下代码(在LInux上测试):

from __future__ import print_function

from cffi import FFI

ffi = FFI()

ffi.cdef("""

typedef long long time_t;

typedef struct timespec {

time_t tv_sec;

long tv_nsec;

...;

};

typedef struct stat {

struct timespec st_mtim;

...;

};

int lstat(const char *path, struct stat *buf);

""")

C = ffi.verify()

result = ffi.new("struct stat *")

p = C.lstat("foo.txt", result)

print("mtime = {0:d}.{1:09d}".format(result.st_mtim.tv_sec, result.st_mtim.tv_nsec))

这与您的问题中的C程序的行为相同.

这会产生输出:

$./test.py

mtime = 1381711568.315075616

其精度与C程序相同:

$gcc test.c -o test

$./test

mtime = 1381711568.315075616

标签:python,filesystems,datetime,linux,precision

python时间函数纳秒_python – 获取纳秒级精度的文件修改时间相关推荐

  1. python 获取 文件修改时间 距离 当前时间 天数 秒数

    一个文件的修改时间(时间元组类型)距离当前时间的天数/秒数 示例如下: import datetime from datetime import timedelta import osfilemt1= ...

  2. python log函数怎么打_Python的log日志功能及设置方法

    python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客

  3. Python-读取文件例子:一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ....

    转载自:http://blog.csdn.net/forandever/article/details/5711319 功能: 获取指定目录下面符合一定规则的文件名称和文件修改时间,并保存到指定的文件 ...

  4. 怎么获取php文件,学习猿地-php怎么获取文件修改时间?

    获取方法:1.使用filemtime()函数,可返回上次文件内容被修改的时间,语法格式"filemtime(文件);":2.使用filectime()函数,可返回上次文件权限.所有 ...

  5. java ftp取远程服务器时间_在 Java 中如何获取 FTP 服务器上的文件修改时间

    使用 Apache Commons Net 进行 FTP 编程的时候,可以使用 FTPClient 类的方法来获取和设置 FTP 服务器上特定文件的修改时间: String getModificati ...

  6. SFTP获取文件夹内的文件名,文件大小,文件修改时间

    SFTP获取文件夹内的文件名,文件大小,文件修改时间 使用SFTP协议获取服务上的指定路径的文件夹下的所有文件名,文件大小,文件的修改时时间等. 工具类 import java.io.File; im ...

  7. golang 获取文件修改时间

    package mainimport ("log""os""time" )func main() {log.Println(GetFileM ...

  8. linux 禁止文件修改时间,linux 修改文件的时间属性

    二.修改文件时间 创建文件我们可以通过touch来创建.同样,我们也可以使用touch来修改文件时间.touch的相关参数如下: -a : 仅修改access time. -c : 仅修改时间,而不建 ...

  9. 将文件名和文件修改时间批量输出至Excel中

    操作系统:Windows10 软件版本:Office2019 1.打开一个空的Excel表格,Alt+F11,双击Sheet1进入代码编辑,输入代码如下: Sub main()ff = Dir(&qu ...

最新文章

  1. Oracle笔记 四、增删改、事务
  2. 显示ip的img的url
  3. python自动化测试看什么书-Python自动化测试入门,看这一篇就足以
  4. 【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )
  5. 干货:MySQL 索引原理及慢查询优化
  6. Linux进阶之路———— RPM 与 YUM 包管理
  7. Linux实战 | 使用Xshell连接Linux_2
  8. 英特尔提前发布财报源自一张图表被披露 公司已开始调查
  9. 蚁群算法python_想要学习启发式算法?推荐你看看这个价值极高的开源项目
  10. restTemplate配置及使用
  11. Python GUI案例之看图猜成语开发(完结篇)
  12. MATLAB绘制中国地图超全教程
  13. 【所见即所得】数据分析最有用的25个 Matplotlib图【附代码】
  14. 想知道如何将PDF合并成一个?这里有三个简单的方法分享
  15. 视频处理系列︱利用达摩院ModelScope进行视频人物分割+背景切换(一)
  16. 安杰思在科创板IPO过会:拟募资约8亿元,达安基因为其主要股东
  17. V4L2视频采集与H264编码1—V4L2采集JPEG数据
  18. 程序员为何很难与他人沟通
  19. 机器人关节模组的总结归纳
  20. 贪心算法解决背包问题

热门文章

  1. Unity - Unable to merge android manifests.
  2. 《1024伐木累》-小白篇之开发网站,三天!(结束篇)-总章节十三
  3. 3-----A Forcast for Bicycle Rental Demand Based on Random Forests and Multiple Linear Regression
  4. liunx系统下搭建domian
  5. 打开51cto.com网页出现病毒提示
  6. java 调试sql server_sql server 如何调试存储过程
  7. node.js毕业设计安卓在线民宿预定app(程序+APP+LW)
  8. 静态网站以及动态网站
  9. ios代码中的内存泄露,内存检测工具leaks 检测不出来
  10. 财务自由到底是啥感觉啊...