我有一个递归循环,用于在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
是因为我正在比较花车而且它们实际上不是完全相同的数字?