Python文件修改了套接字上的时间获取和设置
我已经编写了一些代码,其中使用Python文件修改了套接字上的时间获取和设置,python,file,time,python-3.x,Python,File,Time,Python 3.x,我已经编写了一些代码,其中使用 os.path.getmtime('path') 它返回一些数字,如965465464.19234。我将其转换为字节并通过套接字发送。在另一端,我读取套接字并尝试使用以下命令将此时间戳设置为另一个文件: os.utime('path',(access_time, modified_time)) 当我尝试设置从套接字接收的修改的\u时间时,我确保访问时间保持不变。但是utime需要一个整数,所以我截断了这个数字(例如:965465464),然后一切正常 我是否因
os.path.getmtime('path')
它返回一些数字,如965465464.19234
。我将其转换为字节并通过套接字发送。在另一端,我读取套接字并尝试使用以下命令将此时间戳设置为另一个文件:
os.utime('path',(access_time, modified_time))
当我尝试设置从套接字接收的修改的\u时间时,我确保访问时间
保持不变。但是utime
需要一个整数,所以我截断了这个数字(例如:965465464
),然后一切正常
我是否因为截断而失去了什么?如何改进此功能?getmtime()
返回st\u mtime
。发件人:
注:st_atime、st_mtime和
时间属性取决于操作系统和文件
系统。例如,在使用FAT或FAT32文件的Windows系统上
系统中,st_mtime的分辨率为2秒,而st_atime只有1天
决议有关详细信息,请参阅操作系统文档。
类似地,尽管时间、时间和时间是
通常以纳秒表示,许多系统不提供
纳秒精度。在提供纳秒精度的系统上,
用于存储标准时间、标准时间和标准时间的浮点对象
Stu_êctime无法保存所有这些,因此将稍微保留一点
不准确如果需要确切的时间戳,则应始终使用
时间、时间和时间。
强调我的
您可以使用ns
参数将整数纳秒从os.stat()
传递到os.utime()
:
getmtime()
返回st\u mtime
。发件人:
注:st_atime、st_mtime和
时间属性取决于操作系统和文件
系统。例如,在使用FAT或FAT32文件的Windows系统上
系统中,st_mtime的分辨率为2秒,而st_atime只有1天
决议有关详细信息,请参阅操作系统文档。
类似地,尽管时间、时间和时间是
通常以纳秒表示,许多系统不提供
纳秒精度。在提供纳秒精度的系统上,
用于存储标准时间、标准时间和标准时间的浮点对象
Stu_êctime无法保存所有这些,因此将稍微保留一点
不准确如果需要确切的时间戳,则应始终使用
时间、时间和时间。
强调我的
您可以使用ns
参数将整数纳秒从os.stat()
传递到os.utime()
:
我不认为这个问题与被修改的时间是浮点或整数有关。下面的代码应该可以工作。我什么都做了,但都是通过电线发送的
import os
from datetime import datetime
from calendar import timegm
import sys
st_info = os.stat('foo.py')
st_info.st_atime #acces time
st_info.st_mtime #modified time
mtime = st_info.st_mtime
atime = st_info.st_atime
# send over the wire
os.utime('foo.py', (atime, mtime))
正如您所看到的,os.utime可以很好地处理浮动
时间
Out[15]:1322517342.0
In[16]:类型(mtime)
Out[16]:float我不认为这个问题与被修改的时间是float或integer有关。下面的代码应该可以工作。我什么都做了,但都是通过电线发送的
import os
from datetime import datetime
from calendar import timegm
import sys
st_info = os.stat('foo.py')
st_info.st_atime #acces time
st_info.st_mtime #modified time
mtime = st_info.st_mtime
atime = st_info.st_atime
# send over the wire
os.utime('foo.py', (atime, mtime))
正如您所看到的,os.utime可以很好地处理浮动
时间
Out[15]:1322517342.0
In[16]:类型(mtime)
Out[16]:float一个小疑问,为了在Python3中转换,通过套接字发送需要我们将所有内容转换为字节,然后从字节返回到任何预期的内容。正当那么int和float的问题不会突然出现吗?谢谢你的回复。感谢您的帮助文档明确地说:“如果您需要确切的时间戳,您应该始终使用st_atime、st_mtime和st_ctime”。据我所知,OP需要精确的时间戳,因此应该使用integer*\ns
属性。一个小疑问是,为了在python 3中转换,通过套接字发送需要我们将所有内容转换为字节,然后再从字节转换回所需的内容。正当那么int和float的问题不会突然出现吗?谢谢你的回复。感谢您的帮助文档明确地说:“如果您需要确切的时间戳,您应该始终使用st_atime、st_mtime和st_ctime”。据我所知,OP需要精确的时间戳,因此应使用整数*\n属性。