私のpythonプログラムにはいくつかの問題があります。Pythonを使って最も古いファイルを別のディレクトリにコピー
ディレクトリを開き、最も古いファイルを選択して、そのファイルを別のディレクトリにコピーしたいとします。
「shutil」と記載されている文書を読みましたが、最も古いものを選択する方法はわかりません。
誰かがこの問題を解決するのに役立つでしょうか?
私のpythonプログラムにはいくつかの問題があります。Pythonを使って最も古いファイルを別のディレクトリにコピー
ディレクトリを開き、最も古いファイルを選択して、そのファイルを別のディレクトリにコピーしたいとします。
「shutil」と記載されている文書を読みましたが、最も古いものを選択する方法はわかりません。
誰かがこの問題を解決するのに役立つでしょうか?
次の例では、変更日を比較していますが、たとえばgt
の定義をos.path.getctime
またはos.path.getatime
に変更することによって、ファイル関連の時間を変更することはもちろん可能です。
import os, shutil
fromdir = '/home/mac/Desktop'
todir = '/home/mac/Desktop/tmp'
gt = os.path.getmtime #change if you want something else
oldest = min([(f, gt(f)) for f in os.listdir(fromdir)])[0]
shutil.move(fromdir + '/' + oldest, todir)
ファイルまたはディレクトリの最後のアクセス時間を取得する場合はos.path.getatime
、最後の変更の時刻を取得する場合はps.path.getmtime
を使用できます。
あなたは 'getmtime'の修正の時間を意味しますか? –
@Eli:はい、あります - ありがとう、ありがとう。 –
これは私にとっては役に立たなかった。最小のファイル名(アルファベット順に 'a'に近いもの)を返しているようです。
タプル(gt(f))内のファイル情報とファイル名を逆にして、f)はそれを修正しました。したがって私は返された結果([1])のインデックスをアップしなければなりませんでした。
oldest = min([ ( gt(f),f ) for f in os.listdir(fromdir)])[1]
UNIXでは、ctimeは最後のファイルステータス変更の時刻であり、Windows上の作成時刻のみです。 – cdarke
ご返信ありがとうございます。 –