간단한 파일 변환 프로그램 개발..
아래과 같은 샘플파일을 받아서
1 2 3 4 5 6 7 |
[COL1]: 2013-04-17 11:42:32 [COL2]: [COL3]: [COL1]: 2013-04-17 11:42:34 [COL2]: aaaa [COL3]: bbbb |
아래의 포맷으로 변경
1 2 |
filename☆2013-04-17 11:42:32☆☆ filename☆2013-04-17 11:42:34☆aaaa☆bbbb |
작성한 소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# filename : format_trans.py # -*- coding: utf-8 -*- import optparse def csvTrans(filename): f = file(filename, 'r') fw = open("res_"+filename, "w") linecount = 0 res = dict() while True: line = f.readline() if not line : if res.values() : fw.write(filename+"☆"+res["COL1"]+"☆"+res["COL2"]+"☆"+res["COL3"]+"\n") print(filename+"☆"+res["COL1"]+"☆"+res["COL2"]+"☆"+res["COL3"]) break elif line == "\n" : fw.write(filename+"☆"+res["COL1"]+"☆"+res["COL2"]+"☆"+res["COL3"]+"\n") print(filename+"☆"+res["COL1"]+"☆"+res["COL2"]+"☆"+res["COL3"]) res = dict() else : parsed_list = line.rstrip('\n').split(']: ') if parsed_list[0].find("COL1") > 0 : res["COL1"] = parsed_list[1] if parsed_list[0].find("COL2") > 0 : res["COL2"] = parsed_list[1] if parsed_list[0].find("COL3") > 0 : res["COL3"] = parsed_list[1] f.close() fw.close() def main(): parser = optparse.OptionParser('usage format_trans.py -f filename') parser.add_option('-f', dest='filename', type='string', help='input file') (options, args) = parser.parse_args() filename = options.filename if filename == None : print parser.usage exit(0) csvTrans(filename) if __name__ == '__main__': main() |
아래와 같이 실행하면 된다.
1 2 3 |
C:\Python27\apollo89_study>python format_trans.py -f sample.txt sample.txt☆2013-04-17 11:42:32☆☆ sample.txt☆2013-04-17 11:42:34☆aaaa☆bbbb |
결과 파일은 res_sample.txt 에 저장