動作環境
Xeon E5-2620 v4 (8コア) x 2
32GB RAM
CentOS 6.8 (64bit)
openmpi-1.8.x86_64 とその-devel
mpich.x86_64 3.1-5.el6とその-devel
gcc version 4.4.7 (とgfortran)
NCAR Command Language Version 6.3.0
WRF v3.7.1を使用。
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
Python 3.6.0 on virtualenv
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
前回の学習:
@shiracamus さんのコメントにてre.match()の方法を教えていただきました。
現在のreパッケージ使用のレベル: スライムにぼこられる程度
処理内容
- 入力: AAA_20170228_030000_BBB.png
- 出力(リスト):
- 2017/02/28
- 03:00:00
code
test_get_datetimelabel_171005.py
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import re
import sys
import subprocess as sb
from datetime import datetime, timedelta
# on Python 2.6.6
# coding rule: PEP8
def get_filename_yyyymmddhhnn_regex(filename):
# input(filename): e.g. AAA_20170228_030000_BBB.png
#
date_time = re.match(r'(.*_)(\d{8}_\d{6})(_.*)', filename).group(2)
wrkgrp = re.match(r'(\d{4})(\d{2})(\d{2})', date_time).group
#adate = wrkgrp(1) + "/" + wrkgrp(2) + "/" + wrkgrp(3)
adate = "/".join([wrkgrp(1), wrkgrp(2), wrkgrp(3)])
wrkgrp = re.match(r'(.*_)(\d{2})(\d{2})(\d{2})', date_time).group
atime = wrkgrp(2) + ":" + wrkgrp(3) + ":" + wrkgrp(4)
return adate, atime
def get_filename_yyyymmddhhnn_slice(filename):
# input(filename): e.g. AAA_20170228_030000_BBB.png
#
DAY, TIME = [2, 3]
grp = re.match(r'(.*_)(\d{8}_)(\d{6})(_.*)', filename).group
wrk = grp(DAY)
adate = "%s/%s/%s" % (wrk[:4], wrk[4:6], wrk[6:8])
wrk = grp(TIME)
atime = "%s:%s:%s" % (wrk[:2], wrk[2:4], wrk[4:6])
return adate, atime
SRC = "AAA_20170228_030000_BBB.png"
res = get_filename_yyyymmddhhnn_regex(SRC)
print(" ".join(res))
res = get_filename_yyyymmddhhnn_slice(SRC)
print(" ".join(res))
run
2017/02/28 03:00:00
2017/02/28 03:00:00
備考
get_filename_yyyymmddhhnn_regex()
はadate代入部分やatime代入部分が読みにくい。
get_filename_yyyymmddhhnn_slice()
は読みやすくはあるが、位置指定は間違いやすいかもしれない。
教えていただいた事項
@shiracamus さんのコメントにて色々な実装方法を教えていただきました。
情報感謝です。
実際に使いながら身に付けていきたいと思います。