간단한 파일 변환 프로그램 개발..
아래과 같은 샘플파일을 받아서
[COL1]: 2013-04-17 11:42:32 [COL2]: [COL3]: [COL1]: 2013-04-17 11:42:34 [COL2]: aaaa [COL3]: bbbb
아래의 포맷으로 변경
filename☆2013-04-17 11:42:32☆☆ filename☆2013-04-17 11:42:34☆aaaa☆bbbb
작성한 소스코드
# 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()
아래와 같이 실행하면 된다.
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 에 저장