os路径.winXP上的getmtime

[对那些阅读两次的人感到抱歉,但我只是意识到我已经发布了 这是在我的机器上的日期弄乱之后试图弄清楚的 这个 - 因此,消息可能进入了最后几个月的消息 包括我在内的大多数人.] 你好 我正在尝试使用os.path.getmtime检查文件是否已修改. 我的操作系统是winxp. 问题是,当操作系统从/到 日光节省时间,结果突然停止了3600秒. 一个小时,即使文件保持不变. 我已经尝试使用win32file.getfiletime,它报告了一致的 数字,不论DST. 这里发生了什么? 我的第一个想法是GetMtime应该测量 "原始"时间,不关心DST,因此给了我同样的东西 结果,无论我称之为机器上的日期如何. 模块坏了吗 在某种程度上,还是我只是在这里错过了什么? 问候 JorgRødsjø

# 回答1

在星期二,2005年11月8日07:57:44 +0100,=?iso-8859-1?q? 驱动器中的音量C是系统 音量序列号为14CF-C4B9 C的目录:\ pywk \ clp 03-09-10 14:38 595 wc.py我尝试使用win32file.getfiletime,并且它报告了一致的number,而不管DST. 我的第一个想法是,GetMtime应该测量" raw"时间,而不关心DST,因此无论我称之为机器上的日期如何,都会给我萨默斯特. 模块破碎了,还是我只是在这里错过了一些东西? 您是如何格式化从OS.path.getmtime获得的数字的? 您可能想尝试以上一些. 如果您在DST更改之前和之后实际创建/修改了文件 并看到了额外的小时差异,而不是两个动作之间的时间, 是时候在文件统计信息中记录,但这很难相信. 更有可能的人 正在与原始文件时间设置(例如触摸)混在一起. 看到它很方便 如果有的话,它做出了什么dst假设. 问候, Bengt Richter
# 回答2

Bengt Richter写道: 我正在测试的文件已经很长时间没有修改. Windows将修改日期报告为相同,无论我做什么 (无论是通过GUI还是通过Win32file). 他们都表明了 当我致电GetMtime时,同样奇怪的3600秒差异,没有DST/没有DST 在他们. -jorg
# 回答3

在2005年11月8日星期二10:49:56 +0100,=?iso-8859-1?q? 目前,我正在查看Localtime和GMTime之间的差异,以查看我的计算机是否在DST中. 如果不是这样,请在OS.Path.getmtime的结果中添加3600秒 - 这应该给出一致的结果. 时间模块应该知道如何为您做这件事,除非某事是fubar. 参见Time.Timz 导入时间 帮助(时间)我正在测试的文件很长一段时间没有被修改.Windows报告修改后的日期是相同的 无论我做什么(无论是通过GUI还是通过Win32file). 当我致电GetMtimeon时,它们都显示出奇怪的3600秒差异,没有DST. 通过'getMtime'您的意思是OS.Path.getMtime(fer_shure_or_absolute_path_to_fil e)对吗? 那不是让您有整数的秒数吗? GUI或Win32file向您展示了什么 那个整数以便您看到3600秒的差异吗? 或您如何看? 您能否在屏幕上的一个示例粘贴这个差异的示例? 我认为我不理解;-) ... urk,已经很晚了; - / 问候, Bengt Richter
# 回答4

Bengt Richter写道: (顺便说一句:感谢您的兴趣.) 逐步示例: [我在测试期间的任何时间都不会修改foo.py-file.] 将系统日期设置为11月8日(无DST),我运行以下 OS.Path.getMtime('spam.py'),结果获得1045578240. 将系统日期设置为10月8日(DST),我运行以下 OS.Path.getMtime('spam.py'),结果获得1045581840. 这就是让我想到的. 这些数字应该相同 - 对吗? 没有3600. 在两个日期,都致电Windows win32file.getFiletime(来自Python Win32扩展名)给了我时间02/18/03 14:24:00-即 设置时间之前和之后. 我没有看过win32file.getfiletime或 os.path.getmtime,但我应该认为他们都应该打电话 窗户功能的基础. 我希望这更清楚. 知道为什么会发生这种情况吗? 问候 JorgRødsjø
# 回答5

在2005年11月8日星期二13:33:12 +0100,=?iso-8859-1?q? )逐步示例:[我的cource在测试过程中的任何时间都不修改foo.py-file. 结果.这就是我的想法. 这些数字应该是相同的 - 对吧?不是3600.在两个日期,致电Windows win32file.getFiletime(来自Pythonwin32扩展)给我时间02/18/03 14:24:00-即 在设定了时间之后.我没有考虑到win32file.getFiletime oros.getmtime的来源,但是我应该认为他们都应该调用相同的Windows-function.我希望这使情况更加清楚. 知道为什么会发生这种情况吗? 好的,现在很清楚,谢谢;-) 好吧,这似乎是一个错误. os.path(至少在ntpath.py的别名时)只会致电OS.STAT: """ def getmtime(文件名): """返回文件的最后一个修改时间,由OS.STAT()""报告 返回OS.STAT(文件名).ST_MTIME """ 因此,也许下一步是检查OS.STAT验证它也相同,然后 真正实现了OS.STAT的底部. 问候, 右右(_ @ _)

标签: python

添加新评论