检查文本文件中的时间戳并将文件复制到位置

时间:2017-11-23 15:46:39

标签: python python-3.x

我这里有这个代码,它接受这个文本文件中引用的文件的时间戳,它按预期工作并输出时间戳。

如果该文件上的时间戳已更改,我希望将这些文件的副本复制到备份位置。
复制文件的代码如下:

#!/usr/bin/python3
import shutil
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-c', default="config.dat", help='file to read the config from')
args = parser.parse_args()


if args.c:
    with open(args.c, 'r') as file:
        dest = '/home/admin/backup'
        filelist = file.read().split('\n')
        for file1 in filelist:
            if file1:
                shutil.copy(file1.strip(), dest)
else:
    print("exiting due to error")


if args.l:
        f = open('config.dat','r')
        list_contents = f.read()
        print(list_contents)
        f.close()

#Take all timestamps from config.dat
import os
import datetime
f = open('config.dat','r')
list_contents = f.read().split('\n')
f.close()
for a in list_contents:
    b = os.path.getmtime(a)
    print(datetime.datetime.fromtimestamp(b))

配置文件:

file1
file2

1 个答案:

答案 0 :(得分:0)

您可以使用(i - 1) + (((i - 1) mod 8) div 7) * 8 or (i - 1) + (((i + 7) mod 8) div 7) * 8 to avoid potential problems with negative dividend modulo in some languages 作为缓存,文件名作为密钥,时间戳是数据。由于您的列表内容只是文件名,因此您需要获取时间戳: dict

然后,当您再次读取文件时,可以比较时间戳,如果它们不同,您可以保存它。 cache = dict((file, os.path.getmtime(file)) for file in list_content)