私はPythonには比較的新しいですし、2つの日付の間に作成されたファイル(写真)を見つけてフォルダに入れるスクリプトを作成しようとしています。 そのためには、何らかの形でファイルの作成日を取得する必要があります(Im on Windows)。 私はすでにすべてのコードを持っていますが、各写真の日付を取得するだけで済みます。日付が返される形式を調べることも興味深いでしょう。最高はm/d/yまたはd/m/y(d =日; m =月、y =年)のようになります。 ありがとうございます!私はこのフォーラムを初めて利用していますPython:2つの日付の間に作成日があるファイル(png)を見つける
答えて
Python os
のパッケージを参照してください。ファイルの日付を抽出することができます。日付操作については、Python datetime
パッケージを参照してください。
また、お使いのバージョンで利用可能なWindowsコマンドを確認してください。ほとんどのバージョンでは、日付パラメータを持つ検索機能があります。 OSのシステムコマンドで必要なファイル名を返すことができます。
私はあなたが何らかの理由でファイルをリストアップしていると想像して、 os.stat(path).st_ctime
を使用してWindowsで作成した後、datetimeモジュールの文字列形式を使用します。
https://docs.python.org/2/library/stat.html#stat.ST_CTIME
https://stackoverflow.com/a/39359270/928680 この例では、ファイルのmtime(変更)時間を変換する方法を示していますが、同じことがCTIMEに適用される(作成時間)
あなたは、それは比較的簡単ですctimeのを持っている一度そのかどうかを確認しますあなたは文字列に変換する前に、あなたの日付のロジックを実行する必要があります
https://stackoverflow.com/a/5464465/928680
範囲内に収まります。
解決策の1つは、それほど効率的ではありません。これを行う方法の1つを示すだけです。
import os
from datetime import datetime
def filter_files(path, start_date, end_date, date_format="%Y"):
result = []
start_time_obj = datetime.strptime(start_date, date_format)
end_time_obj = datetime.strptime(end_date, date_format)
for file in os.listdir(path):
c_time = datetime.fromtimestamp(os.stat(file).st_ctime)
if start_time_obj <= c_time <= end_time_obj:
result.append("{}, {}".format(os.path.join(path, file), c_time))
return result
if __name__ == "__main__":
print "\n".join(filter_files("/Users/Jagadish/Desktop", "2017-05-31", "2017-06-02", "%Y-%m-%d"))
歓声!
ありがとうございます!私は後でこれをテストします。また、フォルダ内のすべてのファイルを特定のタイムスパン内で作成したものをTHENで検索する「簡単な」方法はありますか?:) – crazycoder69
2つの日付の間でファイルをフィルタする回答を追加しました – Jag
subprocess
を使用してファイルに対してシェルコマンドを実行すると、そのファイルのmeta_dataを取得できます。
import re
from subprocess import check_output
meta_data = check_output('wmic datafile where Name="C:\\\\Users\\\\username\\\\Pictures\\\\xyz.jpg"', shell=True)
# Note that you have to use '\\\\' instead of '\\' for specifying path of the file
pattern = re.compile(r'\b(\d{14})\b.*')
re.findall(pattern,meta_data.decode())
=> ['20161007174858'] # This is the created date of your file in format - YYYYMMDDHHMMSS
- 1. laravelの2つの日付の間の日を見つける
- 2. 日付が2つの日付の間にある特定の日を見つける方法
- 3. Xcode - 2つの日付間の中間日付を見つける方法
- 4. 2つの日付の間に日付表を作成する
- 5. Oracle SQLで2つのvarchar日付の間の日数を見つけよう
- 6. 日付の間の日数を見つけるC#
- 7. 2つのタイムスタンプの日付の差を見つけるには
- 8. 2つの日付の間に不足している日付を見つける
- 9. 与えられた2つの日付間の日付シーケンスの作成 - 2月2日に失敗する
- 10. 2つの日付時刻の間に1日の時間を見つける方法ExcelまたはMSアクセス
- 11. 日付が発生する時間間隔を見つける
- 12. 日付がこれらの2つの日付の間にある場合
- 13. 別の日付の前に最低日付を見つける
- 14. Mongoは、2つの日付の間の配列内のタイムスタンプを見つける
- 15. 2つの日付の違いを見つける
- 16. 2つの日付の違いを見つける方法
- 17. 日付が開始日と終了日の間で、nullの可能性があるHibernateエンティティを見つける
- 18. 2つの日付時刻の間の微妙な差異を見つける
- 19. 2つの日付間の日付の生成
- 20. 日数b/wの2つの日付を見つけるにはSimpledateFormatのlogcatエラーがあります
- 21. 日付範囲の間の特定の月の日付を見つける
- 22. 前の日曜日の日付アルゴリズムを見つける
- 23. Android(間隔の10日間の日付のリストを見つける方法)
- 24. 日付がPythonの2つの日付の間にあるかどうかをチェックする方法
- 25. python3.2)どのように2つの日付の間の平日を見つけるのですか?
- 26. Laravel 2つの日付がnullの間にあるもの
- 27. 2つの日付間の日曜日を計算する
- 28. PostgreSQLの日付シーケンスを見つける
- 29. 2つの日付の間にある行が必要です
- 30. 今日の日付が2つのDATE列の間にあるMySQLの行
これまでに何を試しましたか? – Mureinik
特定のフォルダまたはシステム全体でファイルを検索していますか? –