5.38. mpadding (行補完) コマンド¶
k=
パラメータで指定した項目をキーとして、
f=
パラメータで指定した項目の値が連続するようにレコードを作成する。
v=
パラメータを指定した場合は、
k=
, f=
で指定した以外の項目値を指定した文字列でパディングし、
n
オプション指定時は、nullでパディングする。
ただし、 v=
と n
オプション共に指定がなければ直前の項目値でパディングする。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
k= : 型=str , 任意(default=キーブレイク処理しない)
ここで指定された項目をキーとする。
f= : 型=str , 必須
連続パディング対象項目名ここで指定された項目の値が連続するようにレコードをパディングする。数字としてパディングするときは、no%nのように%nを指定する。日付としてパディングするときは%d、時刻としてパディングするときは%tを指定する。降順でパディングしたいときはno%d%rのようにrを追加する。
v= : 型=str , 任意(default=)
パディング用文字列指定k=,f=で指定した以外の項目値を指定した文字列で出力する。
S= : 型=str , 任意(default=)
開始値f=で指定した項目の値の開始値を指定する。
E= : 型=str , 任意(default=)
終了値f=で指定した項目の値の終了値を指定する。
n= : 型=bool , 任意(default=False)
パディングにnull値指定k=,f=で指定した以外の項目値をnullで出力する。
共通パラメータ¶
i= , o= , assert_diffSize= , assert_nullkey= , assert_nullin= , assert_nullout= , nfn= , nfno= , x= , x= , tmppath= , precision=
利用例¶
importと入力データ(CSV)の準備
1import nysol.mcmd as nm 2 3with open('dat1.csv','w') as f: 4 f.write( 5'''no 63 76 88 9''') 10 11with open('dat2.csv','w') as f: 12 f.write( 13'''date,dummy 1420130929,a 1520131002,b 1620131004,c 17''')
基本例
no
項目が整数(%n)として連続するようにレコードをパディングする。
1
とverb|4|の間に 2,3
を、 4
と 2
の間に 3
が挿入されている。
1nm.mpadding(f="no%n", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# no%0n 4# 3 5# 4 6# 5 7# 6 8# 7 9# 8
開始値、終了値の指定
行間のパディングだけでなく、先頭行/終端行の前後もパディングする。
前後の範囲は S=,E=
で指定する。
1nm.mpadding(f="no%n", S="1", E="10", i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# no%0n 4# 1 5# 2 6# 3 7# 4 8# 5 9# 6 10# 7 11# 8 12# 9 13# 10
日付パディング
date
項目が日付(%d)として連続するようにレコードをパディングする。
k=,f=
で指定した以外の項目は、直前の行の項目値でパディングする。
1nm.mpadding(f="date%d", i="dat2.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# date%0,dummy 4# 20130929,a 5# 20130930,a 6# 20131001,a 7# 20131002,b 8# 20131003,b 9# 20131004,c
パディング用文字列指定
v=
にてパディング文字列を指定することもできる。
1nm.mpadding(f="date%d", v="padding", i="dat2.csv", o="rsl4.csv").run() 2### rsl4.csv の内容 3# date%0,dummy 4# 20130929,a 5# 20130930,padding 6# 20131001,padding 7# 20131002,b 8# 20131003,padding 9# 20131004,c
パディングにNULL値を指定
n=True
を指定してNULL値でパディングすることも可能。
1nm.mpadding(f="date%d", n=True, i="dat2.csv", o="rsl5.csv").run() 2### rsl5.csv の内容 3# date%0,dummy 4# 20130929,a 5# 20130930, 6# 20131001, 7# 20131002,b 8# 20131003, 9# 20131004,c