いろいろチェック処理が必要となる場面があるのですが
Excelを使っている場合が多々あります。(ようは手作業が入る)
自動化に向けてPythonでざくっと書きなおしてみます。
やること
リリースコードの文字コード、改行コードが拡張子に応じて適切ですかね?
以下の処理はOSコマンドのみ、Shell化でOKなので詳細は省略。
1.リリース対象物定義
2.SVNで取得(URL,リビジョン指定)
3.nkf --guessで文字コード、改行コードを取得
4.ちょっと整形(CSV形式に)
ここからPythonで
import pandas as pd
# 正解組み合わせを読み込む
df1_columns=['ext','True_kaigyocode','True_mojicode']
df1 = pd.read_csv('/home/satoshi/popko/Def.txt',
dtype='object',
encoding='utf_8',
names=df1_columns,
skipinitialspace=True)
# リリース対象結果リストを読み込む
df2_columns=['filename','ext','kaigyocode','mojicode']
df2 = pd.read_csv('/home/satoshi/popko/data.txt',
dtype='object',
encoding='utf_8',
names=df2_columns,
skipinitialspace=True)
正解リストとリリース対象結果リストをマージします。
改行コードと文字コード、一致しているか判定。
x = pd.merge(df2,df1,on='ext',how='outer')
(x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode'])
0 True
1 False
2 False
3 True
4 True
5 False
6 True
7 True
8 True
9 False
dtype: bool
チェックOK明細を確認
x[(x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode'])]
チェックNG明細を確認
x[~((x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode']))]
よさそうですね。
リリース対象結果リストに結果判別をつけます
x['judge'] = ((x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode']))
x[['filename','ext','kaigyocode','mojicode','judge']]