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)