2

次のコマンドを使用して、経過時間に基づいてファイルを削除する cron ジョブがあります。

find /path/to/file/ -type f -mmin +120|xargs -I file rm 'file'

ただし、コマンドを python スクリプトに統合したいと思います。これには、タスクや cron でも実行されるその他のものが含まれます。

コマンドを Python スクリプトにそのまま挿入するだけで、おそらく find が実行されることは理解していますが、これを達成するためのより Python 中心の方法と、それがもたらす可能性のあるその他の利点を知りたいと思っています。

4

2 に答える 2

2

私の方法は次のとおりです。

import os
import time

def checkfile(filename):
    filestats = os.stat(filename) # Gets infromation on file.
    if time.time() - filestats.st_mtime > 120: # Compares if file modification date is more than 120 less than the current time.
        os.remove(filename) # Removes file if it needs to be removed.

path = '/path/to/folder'

dirList = os.listdir(path) # Lists specified directory.
for filename in dirList:
    checkfile(os.path.join(path, filename)) # Runs checkfile function.

編集:私はそれをテストしましたが、うまくいきませんでした。そのため、コードを修正し、動作することを確認できます。

于 2012-08-15T10:09:07.843 に答える
1

使用するos.popen()

>>>os.popen("find /path/to/file/ -type f -mmin +120|xargs -I file rm 'file'")

subprocessまたは、次のモジュールを使用できます。

>>> from subprocess import Popen, PIPE
>>> stdout= Popen(['ls','-l'], shell=False, stdout=PIPE).communicate()
>>> print(stdout)
于 2012-08-15T09:21:25.397 に答える