0

作成日に基づいて古いファイルをアーカイブしようとしています。2010 年 12 月 17 日から始まるデータがあるので、これを基準日として設定し、そこから増分します。これが私のコードです

import os, time, tarfile
from datetime import datetime, date, timedelta
import datetime

path = "/home/appins/.scripts/test/"
count = 0
set_date = '2010-12-17'
date = datetime.datetime.strptime(set_date, '%Y-%m-%d')

while (count < 2):
    date += datetime.timedelta(days=1)
    tar_file = "nas_archive_"+date.strftime('%m-%d-%y')+".tgz"
    log_file = "archive_log_"+date.strftime('%m-%d-%y')
    fcount = 0
    f = open(log_file,'ab+')
    #print date.strftime('%m-%d-%y')
    for root, subFolders, files in os.walk(path):
        for file in files:
            file = os.path.join(root,file)
            file = os.path.join(path, file)
            filecreation = os.path.getctime(file)
            print datetime.fromtimestamp(filecreation)," File Creation Date"
            print date.strftime('%m-%d-%y')," Base Date"
            if filecreation == date:
                tar.add(file)
                f.write(file + '\n')
                print file," is of matching date"
                fcount = fcount + 1
    f.close()
    count += 1

filecreation 変数が float 値を取得しています。基準日と比較するためにどのように使用できますか?

4

1 に答える 1

1
timestamp = datetime.mktime(date.timetuple())

「タイムスタンプ」には、getctime によって返される値に相当するタイムスタンプが含まれます。質問の下のコメントについて: Windows では getctime は作成時間を返し、UNIX では変更時間 ( http://docs.python.org/3.1/library/os.path.html ) を返します。

編集(コメントの質問について):

1) mktime は Python 2.x に存在します: http://docs.python.org/2/library/time.html#time.mktime

2) Linux で Python を使用してファイル作成時間を取得する

EDIT2:

明らかにこれはばかげているので、以下の tdelaney で提案されているように進める必要があります。

date.fromtimestamp(filecreation)

タイムスタンプではなく日付を比較します。私はアルゴリズムが実際に何をしているのか見ていませんでした:)

于 2013-08-07T16:40:55.010 に答える