2016-05-23 26 views
1

特定のフォルダ内のすべてのファイル(フォルダではない)を削除するためのポストがいくつか見受けられますが、わかりません。7日以上経過したファイルを削除する

UNCパスを使用し、7日以上経過したすべてのファイルを削除する必要があります。

Mypath = \\files\data\APIArchiveFolder\ 

誰かが、特に7日以上経過したすべてのファイルを削除する上記のパスを入力できるクイックスクリプトを持っていますか?

+4

が古い平均 "作成日"、 "更新日時" または "最終アクセス" をしますか? –

+2

これはコード作成サービスではありません。あなたがこれまでに持っていたものを投稿し、あなたが立ち往生している場所を教えれば、私たちは助けることができます。 – kindall

+0

[これ](http://stackoverflow.com/questions/237079/how-to-get-file-creation-modification-date-times-in-python)と[this](http://stackoverflow.com/question/6996603/how-do-i-delete-a-file-or-python) – Avantol13

答えて

9

このコードでは、作成された作業ディレクトリのファイルが> 7日前に削除されます。自己責任で実行してください。

import os 
import time 

current_time = time.time() 

for f in os.listdir(): 
    creation_time = os.path.getctime(f) 
    if (current_time - creation_time) // (24 * 3600) >= 7: 
     os.unlink(f) 
     print('{} removed'.format(f)) 
+0

作成後7日後にこのスクリプトは削除されますか? – Squall

+0

はい、このファイルを削除しないように明示的に指定しないかぎりです。 –

+0

これは、削除するディレクトリから実行する必要があること、または 'os.listdir()'にディレクトリを指定する必要があることを警告してください。または、このスクリプトを保存したディレクトリで7日以上経過したファイルを削除します。 – Roberto

0

別のバージョン:

import os 
import time 
import sys 

if len(sys.argv) != 2: 
    print "usage", sys.argv[0], " <dir>" 
    sys.exit(1) 

workdir = sys.argv[1] 

now = time.time() 
old = now - 7 * 24 * 60 * 60 

for f in os.listdir(workdir): 
    path = os.path.join(workdir, f) 
    if os.path.isfile(path): 
     stat = os.stat(path) 
     if stat.st_ctime < old: 
      print "removing: ", path 
      # os.remove(path) # uncomment when you will sure :) 
関連する問題