201711272021みたいな文字列の処理

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)

 

 

コメントを残す