CSV 병합 도구
언어 번역(language.csv) 등의 파일을 병합하는데 유용합니다.
내용이 겹치는 두 CSV를 서로 병합할 때 사용합니다.
구 버전의 한글 번역을 최신 버전의 미번역 파일(번역 할 예정)과 병합할 때, 구 한글 번역을 살리면서 최신 버전 파일과 합칠 수 있습니다.
파이썬이 있다면 파이썬 코드로 실행하는 게 더 좋습니다. 응용프로그램은 오래된 코드를 사용하여 종료 메시지가 뜨기 전까지 파일이 저장되지 않습니다. 반면 파이썬 코드는 병합 작업이 완료되면 바로 파일이 저장됩니다.
코드 전문 - MergeCsv.py
import os
import csv
import codecs
import time
print("\n \n \n HI! This is CSV File Merger. \n")
time.sleep(3)
print(" Let me Know the directory about your Merge CSV Files. Step(1/5) \n")
print(" You can cancel this task with CTRL+C anytime. \n")
time.sleep(1)
mainCSVdir = input(" Please Enter Main CSV FILE Directory : \n ")
mergCSVdir = input(" Please Enter Merge CSV FILE Directory : \n ")
outCSVdir = input(" Please Enter Output CSV FILE Directory : \n ")
mainCSV = codecs.open(mainCSVdir, 'r', "utf-8")
rCSV_0 = csv.reader(mainCSV)
mergCSV = codecs.open(mergCSVdir, 'r', "utf-8")
rCSV_1 = csv.reader(mergCSV)
print("\n Ready? After 3 seconds, I will collect info with Main CSV File. Step(2/5)")
time.sleep(3)
mainData = []
count = 0
for line in rCSV_0 :
print(str(count)+" "+str(line))
mainData.append(line)
count += 1
print("\n DONE! After 3 seconds, I will collect info with Merge CSV File. Step(3/5)")
time.sleep(3)
mergData = []
count = 0
for line in rCSV_1 :
print(str(count)+"\n "+str(line))
mergData.append(line)
count += 1
print("\n DONE! After 5 seconds, I will Merge these two CSV Files. Step(4/5)")
time.sleep(5)
outCSV = codecs.open(outCSVdir, 'w', "utf-8")
wCSV = csv.writer(outCSV)
outData = []
count = 0;
delay = 0;
mergeData = []
print("\n Preperating...")
while(count < len(mergData)) :
merge = mergData[count]
mergeData.append(merge[0])
count += 1
time.sleep(1)
print("\n Start Merge...")
time.sleep(1)
print("\n ")
count = 0
while(count < len(mainData)) :
main = mainData[count]
if mergeData.count(main[0]) > 0 :
i = mergeData.index(main[0])
outData.append(mergData[i])
print(str(count)+"/"+str(delay)+" IMPORT [MERGE] : \n "+str(mergData[i]))
else :
outData.append(mainData[count])
print(str(count)+"/"+str(delay)+" IMPORT [MAIN] : \n "+str(mainData[count]))
delay += 1
count += 1
time.sleep(3)
print("\n Start Write...")
time.sleep(1)
count = 0
while(count < len(outData)) :
wCSV.writerow(outData[count])
print("Writting : "+str(count)+"/"+str(len(outData)-1)+" "+str(round(count/(len(outData)-1)*100),2)+"%")
count += 1
mainCSV.close()
mergCSV.close()
outCSV.close()
time.sleep(1)
print("\n Successful! Please Check your folder ["+outCSVdir+"] Step(5/5)\n\n")
'작업실 > 도구' 카테고리의 다른 글
Android SAF External File Control: Gamemaker Studio 2 Extension 한국어 문서 (0) | 2024.05.06 |
---|---|
SFGenerator.exe: 스프라이트 폰트 생성기 (0) | 2021.12.23 |
AutoReplace.py: 표현식 기반 탐색 후 변환 도구 (0) | 2021.09.13 |
댓글