比较python中文件的修改时间时的意外行为

时间:2016-01-25 10:31:43

标签: python file

我有一个递归循环,用于在python中将文件从位置A传输到B,我认为代码运行良好,不会复制具有相同名称和修改时间的文件。

比较修改时间时,我感到惊讶。这是代码的一部分:

if os.path.getmtime(os.path.join(root, file)) != os.path.getmtime(os.path.join(Dest_Dir, os.path.relpath(os.path.join(root, file), Source_Dir))):
   print 'Path A - date: ', os.path.getmtime(os.path.join(root, file))
   print 'to'
   print 'Path B - date: ', os.path.getmtime(os.path.join(Dest_Dir, os.path.relpath(os.path.join(root, file), Source_Dir))) 
   print '\n'
   shutil.copy2(os.path.join(root, file), os.path.join(Dest_Dir, os.path.join(os.path.relpath(root, Source_Dir), file)))
   print 'Copied modified file ', os.path.join(root, file)

我手动将所有文件从位置A复制到B,因此不应该使用此脚本复制任何文件。

但是,当我打印结果时,虽然浮动mtime对于所有文件都是相同的,但是!=条件得到满足并且所有文件都被复制。这是结果:

Path A - date: 1453715636.69
to
Path B - date: 1453715636.69
Copied modified file  X:\path\to\file\test.txt

是因为我正在比较花车而且它们实际上不是完全相同的数字?

0 个答案:

没有答案