간단한 파일 변환 프로그램 개발..
아래과 같은 샘플파일을 받아서
[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 에 저장