pythonで201711272630(深夜1;30)みたいな日付・時間から始まるファイル名から日付・時刻を抽出。26時や27時という表記があるのでそれれを正す。という処理をしてみた。pythonは初めて書いたのでほとんどネットから見つけてコピペ。
#!/usr/bin/python # -*- coding: utf-8 -*- import os import datetime ls_file_name = os.listdir('/media/usb/files') date_format = '%Y-%m-%d' for f in ls_file_name: #2017|10|02|11|11 #0123 45 67 89 01 # 日付・日時の羅列を取り出す start = f[0:4]+'-'+f[4:6]+'-'+f[6:8]+' '+f[8:10]+':'+f[10:12] # 25時や26時といった表記があるのでそれを正す。 if int(f[8:10]) > 23: #日付の抽出 start_date = f[0:4]+'-'+f[4:6]+'-'+f[6:8] #日付の文字列を日付の型に直して1日加算 tmp_date = datetime.datetime.strptime( start_date , date_format) tmp_date += datetime.timedelta(days = +1) start = tmp_date.strftime(date_format)+' '+"{0:02d}".format(int(f[8:10])-24)+ ':' +f[10:12] #結果を表示 print start
ファイル一覧の取得
os.listdirで取得が可能な模様。返り値はリストらしい。
ls_file_name = os.listdir('/media/usb/files')
日付の文字列を取得して1日加算
20171127形式の日付の文字列を日付型?にして+1日する。
date_format = '%Y-%m-%d' start_date = f[0:4]+'-'+f[4:6]+'-'+f[6:8] tmp_date = datetime.datetime.strptime( start_date , date_format) tmp_date += datetime.timedelta(days = +1)