SlideShare a Scribd company logo
1 of 72
* 책 구매시 출판사로부터 한 학기 분량의 PPT를 제공받으실 수 있습니다.
컴퓨터! 커피 한 잔 마시고 올게,
전부 정리해놔!
Text, Csv, Xlsx automation
CONTENTS
01. 회원 개인 정보 파일 1천 개, 1초 만에 만들기
02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 3
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
• 파이썬의 기초 문법에 익숙해지기
• 외부 라이브러리를 설치하여 활용하기
• 대량의 파일을 순식간에 생성하기
• 대량의 파일을 순식간에 하나로 합치기
• CSV 포맷에 대하여 이해하고 자유자재로 다루어 보기
• CSV 파일을 마이크로소프트 엑셀 파일(xlsx)로 변환하기
TXT, CSV, XLSX 등
문서 파일 처리와 관련된
업무 자동화를 공부합니다.
[단원의 주요 목표]
6개월 치 업무를 하루 만에 끝내는 업무 자동화 4
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
가상 인물 1천 명의
개인정보를 위조하여
각각 파일로 저장합니다.
[ 예제 개요 ]
6개월 치 업무를 하루 만에 끝내는 업무 자동화 5
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(1) 코드 실행하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
예제 코드 폴더로 이동하여 아래 폴더로 이동합니다.
“2_3_1_ 회원 개인정보 파일 1천 개, 1초 만에 만들기”
이 폴더에서 Git Bash를 실행합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 6
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(1) 코드 실행하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
Git Bash가 실행되면 아래 명령어를 입력합니다.
$ python sample_generator.py
엔터키를 누르면 파이썬 코드가 실행됩니다.
$ python sample_generator.py
Process Start.
Process Done.
The Job Took 0.3838324546713965 seconds.
업무 수행에 소요된 시간이 화면에 표시됩니다.
※ TIP
python s 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 7
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(2) 결과물 파일 열어보기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
“Personal_info” 라는 이름의 폴더가 새로이 생겨납니다.
폴더 안에는 개인정보 파일 1천 개가 생성되어 있습니다.
파일을 열어 내용물을 확인해 봅시다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 8
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(3) 업무 자동화 코드 설계 과정
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
목표 정하기
1) 1천 개의 개인정보 파일을 생성합니다.
2) 그 안에 위조된 이름, 나이, 이메일, 부서, 전화번호, 성별을 기재합니다.
3) 이왕이면 양식을 맞추어 예쁘게 기재합니다.
목표를 달성하는 데 필요한 작업 쪼개기
1) 동일한 작업을 1천 번 반복하는 방법이 필요합니다.
2) 작업 한 번에 파일을 하나씩만 생성합니다.
3) 개인정보 상세 항목을 위조하기 위한 방법이 필요합니다.
4) 위조된 정보를 양식에 맞추어 예쁘게 기재해야 합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 9
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(4) IPython 인터프레터 실행
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
Git Bash를 실행하여 아래 명령어를 실행합니다.
$ ipython
IPython이 실행됩니다.
$ ipython
Python 3.8.2 (tags/v3.8.2:7b3ab59) [MSC v.1916 64 bit (AMD64) on win32]
Type “copyright”, “credits” or “license” for more information.
Ipython 7.16.1 – An enhanced Interactive Python. Type ‘?’ for help.
In [1]:
6개월 치 업무를 하루 만에 끝내는 업무 자동화 10
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(5) 결과물 파일을 저장하는 방법
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
폴더를 확인해 봅니다. 아래와 같은 파일이 새로이 생겨났습니다.
파일을 열어 봅시다. 아무 내용도 입력되어 있지 않습니다.
In [4]: file = open(“test.txt”, “w”)
다음 코드를 실행해 봅시다.
축하합니다. 파이썬 코딩으로 문서 파일을 생성했습니다!
6개월 치 업무를 하루 만에 끝내는 업무 자동화 11
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(5) 결과물 파일을 저장하는 방법
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> file.write(“Hello, World!”)
write() 라는 명령어를 활용해 파일에 내용물을 기록할 수 있습니다.
>>> file.close()
파일 편집이 끝나면 close() 명령어를 활용하여 파일을 종료합니다.
워드에서 문서를 작성한 뒤 저장하고 종료 하는 것과 같은 기능입니다.
>>> file = open(“test.txt”, “w”)
>>> file.write(“Hello, World!n”)
>>> file.write(“Hello, World!n”)
>>> file.close()
여러 줄의 내용물을 입력할 때에는 줄바꿈을 하고 싶은 부분에서 n을
입력해 줍니다.
컴퓨터는 n을 만나면 줄바꿈으로 인식합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 12
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(6) Random 모듈의 활용
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> import random
>>> random.random()
0.4880378550579665
Random 모듈을 활용하면 무작위로 대상을 선택할 수 있습니다.
아래 코드를 실행해 봅시다.
화면에 숫자가 출력되었습니다.
위쪽 화살표 방향키[↑]와 엔터키를 눌러 코드를 다시 실행해 봅니다.
>>> random.random()
0.10609285113435418
Random 모듈에 내장되어 있는 random()을 활용하면
0부터 1 사이의 소수를 무작위로 생성할 수 있습니다.
결과 또한 매번 달라집니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 13
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(7) Random 모듈의 본격적인 활용 방법
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> random.random()
0.4880378550579665
앞서 임의의 소수를 생성하는 기능을 체험해 봤습니다.
>>> random.randint(0, 5)
4
아래 코드를 실행하면 0부터 5사이의 임의의 정수가 생성됩니다.
위쪽 화살표 방향키[↑]와 엔터를 눌러 코드를 여러 번 실행해 봅니다.
무작위 정수를 생성할 때에는 random.randint()를 활용합니다.
0과 1사이의 무작위 소수를 생성할 때에는 random.randint()를 활용합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 14
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(7) Random 모듈의 본격적인 활용 방법
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> random.choice([1, 2, 3])
3
아래 코드를 실행하면 1, 2, 3 세 개의 숫자 중에서
임의로 한 가지 숫자가 선택되어 출력됩니다.
위쪽 화살표 방향키[↑]와 엔터를 눌러 코드를 여러 번 실행해 봅니다.
>>> random.choice(“ABCDE”)
A
아래와 같이 코드를 수정해 봅니다.
A, B, C, D, E 중 하나의 알파벳이 무작위로 선택되어 출력됩니다.
위쪽 화살표 방향키[↑]와 엔터를 눌러 코드를 여러 번 실행해 봅니다.
여러 대상 중 하나를 임의로 뽑을 때에는 random.choice()를 사용합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 15
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(8) random.choice()
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> text = “”
>>> text = text + random.choice(“abcdefghijklmnopqrstuvwxyz”)
>>> text = text + random.choice(“abcdefghijklmnopqrstuvwxyz”)
>>> text = text + random.choice(“abcdefghijklmnopqrstuvwxyz”)
아래 코드를 실행해 봅니다.
위쪽 화살표 방향키[↑]를 적극적으로 활용하여 시간을 단축합시다.
축하합니다. 3글자 길이의 무작위 영단어를 생성하는 데 성공하셨습니다!
위 코드의 실행 결과는 아래 코드의 실행 결과와 완전히 동일합니다.
>>> text = “”
>>> for i in range(3):
>>> text += random.choice(“abcdefghijklmnopqrstuvwxyz”)
6개월 치 업무를 하루 만에 끝내는 업무 자동화 16
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(9) 이름 위조하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> name = “”
>>> name += random.choice(first_name_sample)
>>> name += random.choice(middle_name_sample)
>>> name += random.choice(last_name_sample)
>>> name
최민준
>>> first_name_sample = “김이박최정강조윤장임”
>>> middle_name_sample = “민서예지도하주윤채현지”
>>> last_name_sample = “준윤우원호후서연아은진”
이름 생성에 사용할 초성, 중성, 종성 샘플 글자들을 정의합니다.
초성, 중성, 종성을 각각 한 글자씩 임의로 추출하여 이어 붙이겠습니다.
그럴싸한 한국인 이름이 위조되었습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 17
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(10) 성별 지정하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> random.choice([“male”, “female”])
‘female’
남성과 여성 중 하나를 무작위로 선택하는 코드는 아래와 같습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 18
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(11) Time.time() 활용하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> import time
파이썬에서 시간과 관련된 작업을 도와주는 time 모듈을 불러옵니다.
>>> time.time()
1608210182.8376439
Time 모듈의 time() 함수를 사용하면 현재 시각을 불러올 수 있습니다.
우리에게 익숙한 형태는 아니지만 화면에 숫자가 출력되었습니다.
위쪽 화살표 방향키[↑]와 엔터키를 눌러 코드를 여러 번 실행해 봅시다.
매번 다른 숫자가 출력되는 것을 확인할 수 있습니다.
1초마다 숫자가 1.0씩 증가합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 19
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(11) Time.time() 활용하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> time.time()
1608210182.8376439
time.time()은 현재 시각을 1천만분의 1초 단위로 표현해 줍니다.
따라서 실행할 때마다 항상 다른 숫자가 출력됩니다.
이 특징을 활용해서 임의의 숫자를 생성하는 데에도 활용할 수 있습니다.
>>> str(time.time())[-1]
9
위와 같이 스트링으로 타입캐스팅 한 뒤 인덱싱을 사용해
맨 뒤 숫자를 가져오면 무작위 숫자 1개를 생성할 수 있습니다.
>>> str(time.time())[-3:]
572
슬라이싱으로 여러 개의 랜덤 숫자를 동시에 뽑아올 수도 있습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 20
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(12) 나이와 전화번호 위조하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> age = str(time.time())[-3:]
>>> age
31
슬라이싱을 활용해 2자리 숫자를 무작위로 생성해 나이로 활용합니다.
>>> phone = “010-”
>>> phone += str(time.time())[-4:] + “-”
>>> phone += str(time.time())[-4:]
>>> phone
010-4263-4632
4자리 숫자를 무작위로 생성해 “010-”에 이어붙이며
핸드폰 번호를 위조합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 21
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(13) 코드 실행에 걸리는 시간 계산하기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
>>> start = time.time()
코드 실행 시점에 time.time()을 실행하여 시작 시점의 시각을 기록합니다.
모든 작업이 끝난 뒤 코드 종료 시점에 time.time()을 재실행해
종료 시점의 시각을 기록합니다.
>>> end = time.time()
코드 종료 시점의 시각에서, 코드 실행 시점의 시각을 빼 주면
코드 실행에 걸린 시간을 구할 수 있습니다.
>>> end – start
1.32421243
6개월 치 업무를 하루 만에 끝내는 업무 자동화 22
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(14) 새로운 폴더 만들기
01. 회원 개인정보 파일 1천 개, 1초 만에 만들기
Os 모듈의 mkdir() 함수를 활용하면 폴더를 새로이 생성할 수 있습니다.
아래 코드를 실행하면 “test”라는 폴더가 새로이 생성됩니다.
>>> import os
>>> os.mkdir(“test”)
6개월 치 업무를 하루 만에 끝내는 업무 자동화 23
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
1천 건의 개인정보 파일을
문서 파일 하나로 합칩니다.
[ 예제 개요 ]
02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 24
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
(1) 코드 실행하기
앞선 예제 코드 결과물인 <personal_info> 폴더를 복사하여
“2_3_2_회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기” 폴더에
붙여넣습니다.
폴더에서 Git Bash를 실행하여 아래 코드를 실행합니다.
$ python merge_text_files.py
※ TIP
python m 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 25
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
(2) 결과물 파일 열어보기
코드를 실행하면 폴더 안에 <merged_ID.txt>라는 파일이 생성됩니다.
이 파일을 한 번 열어보겠습니다.
앞서 제작한 1천 건의 개인정보가
하나의 파일로 합쳐졌습니다.
축하합니다!
문서 편집 자동화에 성공하셨습니다!
6개월 치 업무를 하루 만에 끝내는 업무 자동화 26
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(3) 업무 자동화 코드 설계 과정
목표 정하기
1) 결과물을 저장할 빈 파일을 생성합니다.
2) <personal_info> 폴더의 내용물을 하나씩 읽어옵니다.
3) 결과물을 저장할 파일에 내용물을 옮겨 적습니다.
4) 내용물 작성이 완료되었다면 파일을 종료합니다.
목표를 달성하는 데 필요한 작업 쪼개기
1) <personal_info> 폴더 안의 내용물을 목록으로 만들기
2) 목록 안의 내용물을 처음부터 끝까지 훑으며, 한 개씩 파일을 읽어오기
3) 읽어온 파일에서 내용물을 뽑아내기
4) 파일에 내용을 기록하고 저장하기
02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 27
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(4) 폴더 안의 내용물을 목록으로 만들기
02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
Git Bash를 실행하여 ipython을 실행합니다.
$ ipython
>>> import os
파이썬에서 운영체제(os)를 제어하기 위한 도구인 os 모듈을 불러옵니다.
>>> os.listdir()
['merged_ID.txt', 'merge_text_files.py', 'personal_info', 'README.md']
Os 모듈의 listdir() 함수를 활용하면 폴더의 내용물을 리스트로 읽어옵니다.
>>> os.listdir(“personal_info”)
[‘0_김현은.txt’,
…
괄호 안에 “personal_info”를 입력하면 해당 폴더의 내용물을 읽어옵니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 28
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(5) 파일을 읽어와 내용물 뽑아내기
02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
>>> files = os.listdir(“personal_info”)
>>> test_file = files[0]
리스트 내용물 중 첫 번째 파일을 가져오겠습니다.
>>> f = open(“personal_info/” + test_file)
아래와 같이 open()을 활용하면 파일을 파이썬에서 불러올 수 있습니다.
괄호 안에 경로명을 포함하여 파일 이름을 기재합니다.
>>> content = f.read()
>>> content
아래와 같이 read() 명령어를 활용하면 파일 안의 내용물을 통째로 불러와
스트링으로 만들 수 있습니다.
>>> f.close()
파일을 불러와 필요한 작업을 마쳤다면 close()를 활용해 파일을 닫아줍니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 29
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
CSV 포맷에 익숙해집니다.
문서 1천 개를 CSV 하나로
합쳐봅니다.
[ 예제 개요 ]
03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 30
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(1) CSV 파일에 대한 설명
03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기
CSV는 Comma-separated values 의 약자입니다.
엑셀과 유사한 표 형태의 데이터를 표현하는 가장 쉬운 방법입니다.
왼쪽의 표를 CSV로 표현하면 오른쪽 표현과 같아집니다.
열(column) 구분은 컴마(,)로 합니다.
행(row) 구분은 엔터(n)로 합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 31
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기
(2) 코드 실행하기
앞선 예제 코드 결과물인 <personal_info> 폴더를 복사하여
“2_3_3_회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기” 폴더에
붙여넣습니다.
폴더에서 Git Bash를 실행하여 아래 코드를 실행합니다.
$ python simple_merge_info_csv.py
※ TIP
python s 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 32
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기
(3) 결과물 파일 열어보기
코드를 실행하면 <simple_merged_ID.csv>라는 파일이 생겨납니다.
아이콘이 엑셀 파일 모양입니다. 실행해 봅시다.
파일이 엑셀에서 정상적으로 실행됩니다.
축하합니다!
엑셀 문서 자동화에 성공하셨습니다!
문서의 양식을 깔끔하게 정리하는 방법은
다음 예제에서 공부해 보겠습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 33
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기
(4) 업무 자동화 코드 설계 과정
목표 정하기
앞서 살펴본 2절의 자동화 결과물을 CSV 파일 형태로 바꿔서 저장합니다.
목표를 달성하는 데 필요한 작업
<.txt> 포맷으로 출력되는 파일의 형식을 <.csv>로 변경합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 34
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
표의 양식을 맞추어
CSV 파일로 저장하는
방법을 공부합니다.
[ 예제 개요 ]
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 35
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(1) 코드 실행하기
앞선 예제 코드 결과물인 <personal_info> 폴더를 복사하여
“2_3_4_개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기” 폴더에
붙여넣습니다.
폴더에서 Git Bash를 실행하여 아래 코드를 실행합니다.
$ python merge_info_csv.py
※ TIP
python m 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 36
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(2) 결과물 파일 열어보기
코드를 실행하면 <merged_ID.csv>라는 파일이 생겨납니다.
아이콘이 엑셀 파일 모양입니다. 실행해 봅시다.
파일이 엑셀에서 정상적으로 실행됩니다.
예쁜 양식으로 정리까지 잘 되었습니다.
축하합니다!
엑셀 문서 자동화에 성공하셨습니다!
6개월 치 업무를 하루 만에 끝내는 업무 자동화 37
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(3) 업무 자동화 코드 설계 과정
목표 정하기
1) 결과물을 저장할 빈 CSV 파일을 생성합니다.
2) CSV 파일에 헤더(header)를 삽입합니다.
3) personal_info 폴더 내부의 내용물을 하나씩 읽어옵니다.
4) 읽어온 내용물을 보기 좋게 다듬어 줍니다.
5) 다듬은 내용물을 결과 파일에 옮겨 적습니다
6) 내용물 작성이 완료되었다면 파일을 종료합니다.
목표를 달성하는 데 필요한 작업 쪼개기
1) personal_info 폴더 안의 내용물을 목록으로 만들기 os.listdir()
2) 폴더 안의 파일을 처음부터 끝까지 한 개씩 읽어오기 for
3) 읽어온 파일에서 내용물을 뽑아냅니다.
4) 파일에 내용물을 기록하고 저장합니다. write()
5) 파일을 읽어와 헤더와 콘텐츠를 분리합니다.
6) 첫 줄에만 헤더를 삽입하고 그 다음 줄부터는 콘텐츠만 삽입합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 38
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(4) readline()을 활용하여 문서 파일 열어오기
>>> f = open(“personal_info/” + test_file)
>>> f.readline()
name : 조하원
>>> f.readline()
age:52
readline()은 호출할 때마다 파일을 위에서부터 한 줄씩 읽어옵니다.
>>> test_file = os.listdir(“personal_info/”)[0]
>>> f = open(“personal_info/” + test_file)
>>> for line in f :
>>> print(line)
For문을 활용하면 파일을 위에서부터 한 줄씩 읽어올 수 있습니다.
마지막 줄을 읽어온 다음 for문이 종료됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 39
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(5) 헤더(Header)
헤더는 파일의 머리(head)쪽에 오는 정보입니다.
대부분의 엑셀 파일의 경우 맨 윗줄에 내용물의 분류가 기재되어 있습니다.
이번 예제의 헤더는 name, age, e-mail, division, telephone, sex 입니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 40
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(6) 스트링의 스플릿(split)
>>> “Pen, Pineapple, Apple, Pen”.split(“,”)
[‘Pen’, ‘ Pineapplie’, ‘ Apple’, ‘ Pen’]
스플릿(split)은 스트링을 쪼개는 기법입니다.
아래 코드를 실행해서 스플릿을 체험해 보도록 하겠습니다.
괄호 안에는 컴마(“,”)를 입력했습니다.
원본 스트링 “Pen, Pineapple, Apple, Pen”이 컴마를 기준으로 쪼개졌습니다.
결과물은 쪼개진 스트링이 기록된 리스트입니다.
>>> “2020-12-18”.split(“-”)
[‘2020’, ‘12’, ‘18’]
스플릿을 익숙하게 사용할 수 있을 때가지 몇 차례 연습을 해 보시기 바랍니다.
스플릿을 조금 더 체험해 보겠습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 41
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(7) 스플릿을 활용한 헤더와 컨텐츠 분리
>>> f = open(“personal_info/” + test_file)
>>> line1 = f.readline()
>>> line1
‘name : 조하원n’
텍스트 파일을 불러와 스플릿을 실행해 보겠습니다. 우선 파일을 불러옵니다.
line1 변수를 확인해 보면 맨 뒤에 개행(줄바꿈) 문자 n이 입력되어 있습니다.
아래 코드를 실행하면 스트링 좌우의 공백과 줄바꿈을 제거할 수 있습니다.
>>> line1 = line1.strip()
>>> line1
‘name : 조하원’
strip()은 스트링 좌우의 공백을 벗겨내는 함수입니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 42
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(8) 스플릿을 활용한 헤더와 컨텐츠 분리
텅 빈 리스트를 2개 만들어 헤더와 컨텐츠를 정리해 보겠습니다.
지금까지 배운 기법들을 코드로 정리하겠습니다.
>>> header = []
>>> contents = []
>>> f = open(“personal_info/” + test_file)
>>> line = f.readline()
>>> splt = line.strip().split(“ : ”)
>>> header.append(splt[0])
>>> contents.append(splt[1])
위 코드를 실행하면 파일의 첫 번째 줄이 분리되어 정리됩니다.
>>> header
‘name’
>>> contents
‘조하원’
6개월 치 업무를 하루 만에 끝내는 업무 자동화 43
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(8) 스플릿을 활용한 헤더와 컨텐츠 분리
>>> line = f.readline()
>>> splt = line.strip().split(“ : ”)
>>> header.append(splt[0])
>>> contents.append(splt[1])
파일은 총 6줄로 구성되어 있으므로 아래 코드를 총 6회 반복해야 합니다.
반복문을 활용하기 좋은 상황입니다.
>>> header = []
>>> contents = []
>>> f = open(“personal_info/” + test_file)
>>> for line in f:
>>> splt = line.strip().split(“ : ”)
>>> header.append(splt[0])
>>> contents.append(splt[1])
위 코드를 실행하면 하나의 파일이 통째로 분리됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 44
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(9) 리스트를 스트링으로 이어붙이기
>>> header
[‘name’, ‘age’, ‘e-mail’, ‘division’, ‘telephone’, ‘sex’]
>>> contents
[‘조하원’, ‘52’, ’90tmv14e@bhban.com’, ‘z42’, ‘010-6652-1966’, ‘female’]
헤더와 컨텐츠는 리스트에 분리된 채로 저장되어 있습니다.
CSV 포맷은 위 자료를 아래와 같이 한 줄의 스트링으로 합쳐야 합니다.
“name, age, e-mail, division, telephone, sex”
“조하원, 52, 92tmv14e@bhban.com, z42, 010-6652-1966, female”
>>> “, ”.join(header)
‘name, age, e-mail, division, telephone, sex’
>>> “, ”.join(contents)
‘조하원, 52, 92tmv14e@bhban.com, z42, 010-6652-1966, female’
아래와 같이 join() 함수를 활용하면 위 작업을 한 번에 수행할 수 있습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 45
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
(10) 불리언 변수를 활용한 코드 분기 메모
불리언 변수 True와 False를 활용하면 일종의 메모를 할 수 있습니다.
>>> done = False
>>> for i in range(5):
>>> if not done:
>>> print(i)
>>> done = True
0
위 코드를 실행하면 최초 1회만 if문 아래의 코드가 실행됩니다.
변수 done의 값이 True로 변하면서 if 뒤의 조건이 False가 되기 때문입니다.
이를 응용하여 출력 파일에 헤더를 1회만 삽입하도록 코드를 설계하겠습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 46
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
CSV 파일을
Xlsx 엑셀 파일로 변환합니다.
[ 예제 개요 ]
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 47
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(1) PyExcel 라이브러리 설치
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
파이썬의 가장 큰 장점은 다른 사람이 만든 코드를 받아와
쉽게 활용할 수 있다는 점입니다.
파이썬에서 엑셀 파일 편집을 쉽게 할 수 있도록 도와주는
PyExcel 라이브러리를 설치해 보겠습니다.
Git Bash에서 아래 명령어를 실행해 주시기 바랍니다.
$ pip install pyexcel pyexcel-xlsx
화면에 메시지들이 출력되며 잠시 뒤 설치가 완료됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 48
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(2) 코드 실행하기
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
4절에서 완성된 <merged_ID.csv> 파일을
“2_3_5_개인정보 CSV 파일, 엑셀로 변환하기” 폴더에 복사합니다.
이 폴더에서 Git Bash를 실행하고 아래와 같이 코드를 실행합니다.
$ python csv_to_xlsx.py merged_ID.csv test.xlsx
※ TIP
탭[Tab] 키를 눌러 자동완성 기능을 사용하면 편리합니다.
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45:
invalid start byte
코드를 실행하면 아래와 같이 에러가 발생하며 코드가 종료됩니다.
인코딩 관련 에러입니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 49
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(3) 인코딩
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
알파벳 A
100101101101… 11011101011… 1110101100011…
…
알파벳 A
디코딩
1
알파벳 A
디코딩
2
????????
디코딩
1
인코딩 데이터를 컴퓨터의 언어로 암호화하는 것
디코딩 데이터를 인간이 이해할 수 있는 형태로 해독하는 것
6개월 치 업무를 하루 만에 끝내는 업무 자동화 50
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(3) 인코딩
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45:
invalid start byte
위 에러는 잘못된 방식으로 데이터를 해독하려 시도했기 때문에
발생하는 에러입니다.
PyExcel 라이브러리는 utf-8 이라는 디코딩 기법으로 데이터를 해독합니다.
CSV 파일을 utf-8 포맷으로 변환해 주면 PyExcel이 정상적으로 데이터를
인식할 수 있습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 51
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(3) 인코딩 변환
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
CSV 파일의 인코딩을 UTF-8로 변환하겠습니다.
예제 폴더에서 Git Bash를 실행하고 아래 코드를 실행합니다.
$ python euc_to_utf.py merged_ID.csv
폴더 안에 ‘utf8_merged_ID.csv’ 라는 파일이 생성됩니다.
이 파일은 UTF-8 인코딩 기법을 사용해 데이터를 표현합니다.
결과 파일을 실행해 봅시다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 52
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(3) 인코딩 변환
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
한글이 제대로 표현되지 않습니다. 정상적인 실행 결과입니다.
엑셀은 EUC-KR 인코딩을 사용하므로 UTF-8 데이터 해독에 실패한 모습입니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 53
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
(4) 업무 자동화 코드 설계 과정 – 인코딩 변환
목표 정하기
1) EUC-KR로 인코딩된 CSV 파일을 불러옵니다.
2) UTF-8로 저장할 새로운 파일을 생성합니다.
3) EUC-KR 파일의 내용물을 모두 불러와 UTF-8로 저장합니다.
4) 파일을 모두 종료합니다.
목표를 달성하는 데 필요한 작업 쪼개기
1) 파일을 읽어올 때, 그 파일의 인코딩을 EUC-KR로 지정하며 불러오기
2) UTF-8로 인코딩을 지정하여 저장할 파일을 생성하기
3) 파일의 내용물을 옮겨 적기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 54
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
(5) sys.argv 활용법
$ python euc_to_utf.py merged_ID.csv
이번 예제는 앞선 예제들과 달리 python <코드파일 이름> 뒤에
파일 이름을 하나 더 입력했습니다.
이렇게 외부로부터 정보를 입력받을 수 있도록 코드를 만들면
하나의 코드를 수정없이 여러 업무에 적용할 수 있습니다.
>>> import sys
>>> filename = sys.argv[1]
위와 같은 코드를 본문에 삽입하는 것으로 기능을 수행할 수 있습니다.
Sys.argv는 파일 이름 뒤에 입력받은 정보를 리스트로 가공해 저장합니다.
Sys.argv[0]은 파이썬 코드 파일 이름이며,
그 다음 값들은 코드 실행시 입력받은 정보들이 순서대로 저장됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 55
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
(6) 인코딩을 지정하며 파일 불러오기
앞서 open()을 활용하여 파일을 불러오는 방법을 공부했습니다.
>>> f = open(“merged_ID.csv”)
아래와 같은 방법으로 불러올 파일의 인코딩을 지정할 수 있습니다.
>>> f = open(“merged_ID.csv”, encoding=“euc-kr”)
아래와 같이 utf-8을 지정할 수도 있습니다.
>>> f = open(“merged_ID.csv”, encoding=“utf-8”)
'w'로 쓰기 모드로 open()을 실행할 때에도 적용 가능합니다.
>>> f = open(“test.txt”, “w”, encoding=“euc-kr”)
6개월 치 업무를 하루 만에 끝내는 업무 자동화 56
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
(7) 다시 코드 실행하기
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
다시 코드를 실행합니다.
아래와 같이 파일명을 수정해야 함에 주의해 주시기 바랍니다.
$ python csv_to_xlsx.py utf8_merged_ID.csv test.xlsx
이번에는 코드가 정상적으로 실행됩니다.
폴더 안에 test.xlsx 파일이 새로 생겨났습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 57
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
(8) 업무 자동화 코드 설계 과정 – CSV를 Xlsx로 변환
목표 정하기
1) CSV 파일을 엑셀 파일로 변환해주는 라이브러리를 찾아봅니다.
2) 그 라이브러리를 활용해서 문제를 해결합니다.
목표를 달성하는 데 필요한 작업 쪼개기
1) PyExcel 라이브러리 설치 pip install pyexcel pyexcel-xlsx
2) PyExcel 내장 기능 활용하여 xlsx로 변환하기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 58
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
(9) CSV를 엑셀로 변환하기
>>> import pyexcel.cookbook
PyExcel 라이브러리의 기능 중에서 cookbook을 불러옵니다.
>>> pyexcel.cookbook.merge_all_to_a_book()
Cookbook의 내장 기능인 merge_all_to_a_book() 함수를 사용할 것입니다.
>>> import pyexcel.cookbook as pc
>>> pc.merge_all_to_a_book()
그런데 위와 같이 호출하면 이름이 너무 길고 복잡합니다.
아래와 같이 as를 활용해 import한 라이브러리의 이름을 줄일 수 있습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 59
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
(10) CSV를 엑셀로 변환하기
>>> csv_list = [“test1.csv”, “test2.csv”, “test3.csv”]
Merge_all_to_a_book은 여러 개의 CSV를 하나로 합쳐 주는 함수입니다.
합쳐진 결과물을 csv 또는 xlsx로 저장할 수 있습니다.
하나로 합치려고 하는 csv 파일 이름들을 리스트로 제공합니다.
>>> pc.merge_all_to_a_book(csv_list, “result.csv”)
아래 코드를 실행하면 csv_list에 기재된 파일들이 하나의 csv파일로
합쳐집니다. 결과 파일의 이름은 result.csv 입니다.
>>> pc.merge_all_to_a_book(csv_list, “result.xlsx”)
아래와 같이 결과 파일의 확장자를 xlsx로 수정하면
결과 파일이 엑셀 xlsx 파일로 저장됩니다.
>>> pc.merge_all_to_a_book([“test1.csv”], “result.xlsx”)
한 개의 csv파일을 xlsx로 변환할 때에는 원소가 1개인 리스트로 입력합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 60
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
1천 개의 텍스트 파일을
Xlsx 파일 하나로 합칩니다.
[ 예제 개요 ]
06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 61
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
(1) 코드 실행하기
1절에서 생성한 <personal_info> 폴더를
“2_3_6_회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로
합치기" 폴더로 복사합니다.
Git Bash를 실행하여 아래와 같이 코드를 실행합니다.
$ python merge.py personal info
※ TIP
탭[Tab] 키를 눌러 자동완성 기능을 사용하면 편리합니다.
코드 실행이 완료되면 <merged_ID.xlsx> 파일이 생성됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 62
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
(2) 결과물 파일 열어보기
<merged_ID.xlsx> 파일을 열어 봅니다.
파일이 엑셀에서 정상적으로 실행됩니다.
예쁜 양식으로 정리까지 잘 되었습니다.
축하합니다!
지금까지 배운 내용들을 모두 활용해
텍스트 파일을 엑셀로 변환했습니다!
6개월 치 업무를 하루 만에 끝내는 업무 자동화 63
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
(3) 업무 자동화 코드 설계 과정
목표 정하기
1천 개의 txt 파일을 xlsx 파일로 변환합니다.
목표를 달성하는 데 필요한 작업 쪼개기
1) 1천 개의 txt 파일을 하나씩 열어오기
2) 예쁘게 다듬어 xlsx 파일로 저장하기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 64
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
(4) 문제 해결 전략
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.txt
.csv .xlsx
텍스트 파일 1천 개를 csv 파일 하나로 합치고,
이 파일을 xlsx 파일로 변환합니다.
변환이 끝난 뒤 .csv 파일은 삭제합니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 65
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
(5) 파일 삭제하기
>>> os.remove(“test.txt”)
파일 삭제 방법을 연습하기 위하여 임시로 파일을 하나 생성합니다.
>>> a = open(“test.txt”, “w”)
>>> a.close()
os 모듈을 불러옵니다.
>>> import os
아래와 같이 os.remove() 함수를 호출하면 test.txt 파일이 삭제됩니다.
os.remove()의 괄호 안에 삭제하려는 파일 이름을 입력하면
파일을 삭제할 수 있습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 66
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
1천 건의 개인정보 파일을
보다 스마트한 방식으로
엑셀 파일 하나로 합칩니다.
[ 예제 개요 ]
07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
6개월 치 업무를 하루 만에 끝내는 업무 자동화 67
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
(1) 코드 실행하기
1절에서 생성한 <personal_info> 폴더를
“2_3_7_회원 개인정보 파일 1천 개, xlsx 엑셀 파일로 바로 합치기”
폴더로 복사합니다.
Git Bash를 실행하여 아래와 같이 코드를 실행합니다.
$ python merge.py personal info
※ TIP
탭[Tab] 키를 눌러 자동완성 기능을 사용하면 편리합니다.
코드 실행이 완료되면 <merged_ID.xlsx> 파일이 생성됩니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 68
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
(2) 결과물 파일 열어보기
<merged_ID.xlsx> 파일을 열어 봅니다.
앞선 예제 결과에 비해 용량이 적습니다.
나이 좌측 상단에 삼각형 표시가 뜹니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 69
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
(3) 업무 자동화 코드 설계 과정
목표 정하기
1) 개인정보 파일 1000개를 불러옵니다.
2) 파일을 하나로 합칩니다.
3) 데이터를 CSV파일로 저장하지 않고, 바로 엑셀 파일로 저장합니다.
목표를 달성하는 데 필요한 작업 쪼개기
파일을 예쁘고 편하게 가공하기 위한 방법을 찾아보기
 PyExcel 라이브러리의 설명서를 참고하자!
6개월 치 업무를 하루 만에 끝내는 업무 자동화 70
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
(4) 표를 리스트로 표현하는 방법
좌측의 CSV 포맷은 우측과 같은 방법으로 리스트로 표현할 수 있습니다.
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
>>> a[0]
[1, 2, 3]
인덱싱을 수행하면 표의 행에 접근할 수 있습니다.
>>> a[0][0]
1
개별 원소에 접근하려면 2중 인덱싱을 수행합니다.
>>> a[0][1]
2
>>> a[0][2]
3
6개월 치 업무를 하루 만에 끝내는 업무 자동화 71
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
(5) 리스트로 표현된 표를 저장하는 방법
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
위 배열을 엑셀 파일로 저장하는 코드는 아래와 같습니다.
>>> import pyexcel as px
>>> px.save_as(array=a, dest_file_name=“test.xlsx”)
array에는 내용물이 기재된 리스트를 입력합니다.
dest_file_name에는 저장하려는 파일 이름을 기재합니다.
코드의 실행 결과는 우측과 같습니다.
6개월 치 업무를 하루 만에 끝내는 업무 자동화 72
Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔!
Chapter 3 되돌아보기
• 파이썬의 기초 문법을 공부했습니다.
• 문서 파일 자동화를 위한 파이썬의 기본 기능을 배웠습니다.
• 외부 라이브러리를 설치하고 불러오는 방법을 익혔습니다.
• Txt 파일을 생성하고 내용물을 편집하는 방법을 익혔습니다.
• CSV 파일을 공부했고, 생성하는 방법을 익혔습니다.
• PyExcel 라이브러리를 활용한 엑셀 자동화를 체험했습니다.
• Random, Time, Os 모듈을 배웠습니다.

More Related Content

Similar to Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현

Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Byunghyun Ban
 
Writing Fast Code (KR)
Writing Fast Code (KR)Writing Fast Code (KR)
Writing Fast Code (KR)Younggun Kim
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부sj k
 
인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬Seung-June Lee
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개Jaewook Byun
 
Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기Ju-ri Seo
 
Docspin 에셋에 대해
Docspin 에셋에 대해Docspin 에셋에 대해
Docspin 에셋에 대해현욱 김
 
코딩 생산성 높이기
코딩 생산성 높이기코딩 생산성 높이기
코딩 생산성 높이기Lee-Jong-Chan
 
웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)JoonHee Lee
 
컴퓨터기초강좌 3강
컴퓨터기초강좌 3강컴퓨터기초강좌 3강
컴퓨터기초강좌 3강guestbab248
 
컴퓨터기초강좌 3강
컴퓨터기초강좌 3강컴퓨터기초강좌 3강
컴퓨터기초강좌 3강tailofmoon
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게Sungju Jin
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XpressEngine
 
리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리Seungyong Lee
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기KTH, 케이티하이텔
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum DNA
 

Similar to Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현 (20)

Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
 
Writing Fast Code (KR)
Writing Fast Code (KR)Writing Fast Code (KR)
Writing Fast Code (KR)
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부
 
Python - Module
Python - ModulePython - Module
Python - Module
 
인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개
 
Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기
 
Docspin 에셋에 대해
Docspin 에셋에 대해Docspin 에셋에 대해
Docspin 에셋에 대해
 
코딩 생산성 높이기
코딩 생산성 높이기코딩 생산성 높이기
코딩 생산성 높이기
 
웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)
 
컴퓨터기초강좌 3강
컴퓨터기초강좌 3강컴퓨터기초강좌 3강
컴퓨터기초강좌 3강
 
컴퓨터기초강좌 3강
컴퓨터기초강좌 3강컴퓨터기초강좌 3강
컴퓨터기초강좌 3강
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
 
리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 
System+os study 1
System+os study 1System+os study 1
System+os study 1
 

More from Byunghyun Ban

PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면 정말로 못 ...
PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면  정말로 못 ...PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면  정말로 못 ...
PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면 정말로 못 ...Byunghyun Ban
 
Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현
Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현
Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현Byunghyun Ban
 
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현Byunghyun Ban
 
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현Byunghyun Ban
 
[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝
[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝
[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝Byunghyun Ban
 
가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현
가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현
가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현Byunghyun Ban
 
AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강
AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강
AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강Byunghyun Ban
 
[2022] 미래 사법의 과제 - AI 임팩트
[2022] 미래 사법의 과제 - AI 임팩트[2022] 미래 사법의 과제 - AI 임팩트
[2022] 미래 사법의 과제 - AI 임팩트Byunghyun Ban
 

More from Byunghyun Ban (8)

PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면 정말로 못 ...
PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면  정말로 못 ...PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면  정말로 못 ...
PyCon Korea 2019 | Keynote | 반병현 | "파이썬과 함께라면 못 할 것은 없다."라는 마음가짐만 있다면 정말로 못 ...
 
Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현
Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현
Chapter 1. 업무 자동화를 시작하며 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현
 
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
 
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현
[2장] 딥러닝을 위한 파이썬 기초학습 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
 
[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝
[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝
[1장] 파이썬 개발환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝
 
가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현
가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현
가장 오래된 산업에 첨단기술 끼얹기 | Nexon NYPC 2020 | 반병현
 
AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강
AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강
AI도입을 위한 기술과 플랫폼 | 동서울대학교 AI 특강
 
[2022] 미래 사법의 과제 - AI 임팩트
[2022] 미래 사법의 과제 - AI 임팩트[2022] 미래 사법의 과제 - AI 임팩트
[2022] 미래 사법의 과제 - AI 임팩트
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하루 만에 끝내는 업무자동화 | 반병현

  • 1. * 책 구매시 출판사로부터 한 학기 분량의 PPT를 제공받으실 수 있습니다.
  • 2. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! Text, Csv, Xlsx automation CONTENTS 01. 회원 개인 정보 파일 1천 개, 1초 만에 만들기 02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기 03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기 07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
  • 3. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 3 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! • 파이썬의 기초 문법에 익숙해지기 • 외부 라이브러리를 설치하여 활용하기 • 대량의 파일을 순식간에 생성하기 • 대량의 파일을 순식간에 하나로 합치기 • CSV 포맷에 대하여 이해하고 자유자재로 다루어 보기 • CSV 파일을 마이크로소프트 엑셀 파일(xlsx)로 변환하기 TXT, CSV, XLSX 등 문서 파일 처리와 관련된 업무 자동화를 공부합니다. [단원의 주요 목표]
  • 4. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 4 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 가상 인물 1천 명의 개인정보를 위조하여 각각 파일로 저장합니다. [ 예제 개요 ]
  • 5. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 5 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (1) 코드 실행하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 예제 코드 폴더로 이동하여 아래 폴더로 이동합니다. “2_3_1_ 회원 개인정보 파일 1천 개, 1초 만에 만들기” 이 폴더에서 Git Bash를 실행합니다.
  • 6. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 6 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (1) 코드 실행하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 Git Bash가 실행되면 아래 명령어를 입력합니다. $ python sample_generator.py 엔터키를 누르면 파이썬 코드가 실행됩니다. $ python sample_generator.py Process Start. Process Done. The Job Took 0.3838324546713965 seconds. 업무 수행에 소요된 시간이 화면에 표시됩니다. ※ TIP python s 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
  • 7. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 7 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (2) 결과물 파일 열어보기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 “Personal_info” 라는 이름의 폴더가 새로이 생겨납니다. 폴더 안에는 개인정보 파일 1천 개가 생성되어 있습니다. 파일을 열어 내용물을 확인해 봅시다.
  • 8. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 8 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (3) 업무 자동화 코드 설계 과정 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 목표 정하기 1) 1천 개의 개인정보 파일을 생성합니다. 2) 그 안에 위조된 이름, 나이, 이메일, 부서, 전화번호, 성별을 기재합니다. 3) 이왕이면 양식을 맞추어 예쁘게 기재합니다. 목표를 달성하는 데 필요한 작업 쪼개기 1) 동일한 작업을 1천 번 반복하는 방법이 필요합니다. 2) 작업 한 번에 파일을 하나씩만 생성합니다. 3) 개인정보 상세 항목을 위조하기 위한 방법이 필요합니다. 4) 위조된 정보를 양식에 맞추어 예쁘게 기재해야 합니다.
  • 9. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 9 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (4) IPython 인터프레터 실행 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 Git Bash를 실행하여 아래 명령어를 실행합니다. $ ipython IPython이 실행됩니다. $ ipython Python 3.8.2 (tags/v3.8.2:7b3ab59) [MSC v.1916 64 bit (AMD64) on win32] Type “copyright”, “credits” or “license” for more information. Ipython 7.16.1 – An enhanced Interactive Python. Type ‘?’ for help. In [1]:
  • 10. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 10 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (5) 결과물 파일을 저장하는 방법 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 폴더를 확인해 봅니다. 아래와 같은 파일이 새로이 생겨났습니다. 파일을 열어 봅시다. 아무 내용도 입력되어 있지 않습니다. In [4]: file = open(“test.txt”, “w”) 다음 코드를 실행해 봅시다. 축하합니다. 파이썬 코딩으로 문서 파일을 생성했습니다!
  • 11. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 11 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (5) 결과물 파일을 저장하는 방법 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> file.write(“Hello, World!”) write() 라는 명령어를 활용해 파일에 내용물을 기록할 수 있습니다. >>> file.close() 파일 편집이 끝나면 close() 명령어를 활용하여 파일을 종료합니다. 워드에서 문서를 작성한 뒤 저장하고 종료 하는 것과 같은 기능입니다. >>> file = open(“test.txt”, “w”) >>> file.write(“Hello, World!n”) >>> file.write(“Hello, World!n”) >>> file.close() 여러 줄의 내용물을 입력할 때에는 줄바꿈을 하고 싶은 부분에서 n을 입력해 줍니다. 컴퓨터는 n을 만나면 줄바꿈으로 인식합니다.
  • 12. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 12 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (6) Random 모듈의 활용 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> import random >>> random.random() 0.4880378550579665 Random 모듈을 활용하면 무작위로 대상을 선택할 수 있습니다. 아래 코드를 실행해 봅시다. 화면에 숫자가 출력되었습니다. 위쪽 화살표 방향키[↑]와 엔터키를 눌러 코드를 다시 실행해 봅니다. >>> random.random() 0.10609285113435418 Random 모듈에 내장되어 있는 random()을 활용하면 0부터 1 사이의 소수를 무작위로 생성할 수 있습니다. 결과 또한 매번 달라집니다.
  • 13. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 13 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (7) Random 모듈의 본격적인 활용 방법 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> random.random() 0.4880378550579665 앞서 임의의 소수를 생성하는 기능을 체험해 봤습니다. >>> random.randint(0, 5) 4 아래 코드를 실행하면 0부터 5사이의 임의의 정수가 생성됩니다. 위쪽 화살표 방향키[↑]와 엔터를 눌러 코드를 여러 번 실행해 봅니다. 무작위 정수를 생성할 때에는 random.randint()를 활용합니다. 0과 1사이의 무작위 소수를 생성할 때에는 random.randint()를 활용합니다.
  • 14. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 14 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (7) Random 모듈의 본격적인 활용 방법 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> random.choice([1, 2, 3]) 3 아래 코드를 실행하면 1, 2, 3 세 개의 숫자 중에서 임의로 한 가지 숫자가 선택되어 출력됩니다. 위쪽 화살표 방향키[↑]와 엔터를 눌러 코드를 여러 번 실행해 봅니다. >>> random.choice(“ABCDE”) A 아래와 같이 코드를 수정해 봅니다. A, B, C, D, E 중 하나의 알파벳이 무작위로 선택되어 출력됩니다. 위쪽 화살표 방향키[↑]와 엔터를 눌러 코드를 여러 번 실행해 봅니다. 여러 대상 중 하나를 임의로 뽑을 때에는 random.choice()를 사용합니다.
  • 15. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 15 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (8) random.choice() 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> text = “” >>> text = text + random.choice(“abcdefghijklmnopqrstuvwxyz”) >>> text = text + random.choice(“abcdefghijklmnopqrstuvwxyz”) >>> text = text + random.choice(“abcdefghijklmnopqrstuvwxyz”) 아래 코드를 실행해 봅니다. 위쪽 화살표 방향키[↑]를 적극적으로 활용하여 시간을 단축합시다. 축하합니다. 3글자 길이의 무작위 영단어를 생성하는 데 성공하셨습니다! 위 코드의 실행 결과는 아래 코드의 실행 결과와 완전히 동일합니다. >>> text = “” >>> for i in range(3): >>> text += random.choice(“abcdefghijklmnopqrstuvwxyz”)
  • 16. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 16 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (9) 이름 위조하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> name = “” >>> name += random.choice(first_name_sample) >>> name += random.choice(middle_name_sample) >>> name += random.choice(last_name_sample) >>> name 최민준 >>> first_name_sample = “김이박최정강조윤장임” >>> middle_name_sample = “민서예지도하주윤채현지” >>> last_name_sample = “준윤우원호후서연아은진” 이름 생성에 사용할 초성, 중성, 종성 샘플 글자들을 정의합니다. 초성, 중성, 종성을 각각 한 글자씩 임의로 추출하여 이어 붙이겠습니다. 그럴싸한 한국인 이름이 위조되었습니다.
  • 17. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 17 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (10) 성별 지정하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> random.choice([“male”, “female”]) ‘female’ 남성과 여성 중 하나를 무작위로 선택하는 코드는 아래와 같습니다.
  • 18. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 18 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (11) Time.time() 활용하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> import time 파이썬에서 시간과 관련된 작업을 도와주는 time 모듈을 불러옵니다. >>> time.time() 1608210182.8376439 Time 모듈의 time() 함수를 사용하면 현재 시각을 불러올 수 있습니다. 우리에게 익숙한 형태는 아니지만 화면에 숫자가 출력되었습니다. 위쪽 화살표 방향키[↑]와 엔터키를 눌러 코드를 여러 번 실행해 봅시다. 매번 다른 숫자가 출력되는 것을 확인할 수 있습니다. 1초마다 숫자가 1.0씩 증가합니다.
  • 19. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 19 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (11) Time.time() 활용하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> time.time() 1608210182.8376439 time.time()은 현재 시각을 1천만분의 1초 단위로 표현해 줍니다. 따라서 실행할 때마다 항상 다른 숫자가 출력됩니다. 이 특징을 활용해서 임의의 숫자를 생성하는 데에도 활용할 수 있습니다. >>> str(time.time())[-1] 9 위와 같이 스트링으로 타입캐스팅 한 뒤 인덱싱을 사용해 맨 뒤 숫자를 가져오면 무작위 숫자 1개를 생성할 수 있습니다. >>> str(time.time())[-3:] 572 슬라이싱으로 여러 개의 랜덤 숫자를 동시에 뽑아올 수도 있습니다.
  • 20. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 20 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (12) 나이와 전화번호 위조하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> age = str(time.time())[-3:] >>> age 31 슬라이싱을 활용해 2자리 숫자를 무작위로 생성해 나이로 활용합니다. >>> phone = “010-” >>> phone += str(time.time())[-4:] + “-” >>> phone += str(time.time())[-4:] >>> phone 010-4263-4632 4자리 숫자를 무작위로 생성해 “010-”에 이어붙이며 핸드폰 번호를 위조합니다.
  • 21. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 21 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (13) 코드 실행에 걸리는 시간 계산하기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 >>> start = time.time() 코드 실행 시점에 time.time()을 실행하여 시작 시점의 시각을 기록합니다. 모든 작업이 끝난 뒤 코드 종료 시점에 time.time()을 재실행해 종료 시점의 시각을 기록합니다. >>> end = time.time() 코드 종료 시점의 시각에서, 코드 실행 시점의 시각을 빼 주면 코드 실행에 걸린 시간을 구할 수 있습니다. >>> end – start 1.32421243
  • 22. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 22 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (14) 새로운 폴더 만들기 01. 회원 개인정보 파일 1천 개, 1초 만에 만들기 Os 모듈의 mkdir() 함수를 활용하면 폴더를 새로이 생성할 수 있습니다. 아래 코드를 실행하면 “test”라는 폴더가 새로이 생성됩니다. >>> import os >>> os.mkdir(“test”)
  • 23. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 23 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 1천 건의 개인정보 파일을 문서 파일 하나로 합칩니다. [ 예제 개요 ] 02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
  • 24. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 24 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기 (1) 코드 실행하기 앞선 예제 코드 결과물인 <personal_info> 폴더를 복사하여 “2_3_2_회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기” 폴더에 붙여넣습니다. 폴더에서 Git Bash를 실행하여 아래 코드를 실행합니다. $ python merge_text_files.py ※ TIP python m 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
  • 25. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 25 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기 (2) 결과물 파일 열어보기 코드를 실행하면 폴더 안에 <merged_ID.txt>라는 파일이 생성됩니다. 이 파일을 한 번 열어보겠습니다. 앞서 제작한 1천 건의 개인정보가 하나의 파일로 합쳐졌습니다. 축하합니다! 문서 편집 자동화에 성공하셨습니다!
  • 26. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 26 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (3) 업무 자동화 코드 설계 과정 목표 정하기 1) 결과물을 저장할 빈 파일을 생성합니다. 2) <personal_info> 폴더의 내용물을 하나씩 읽어옵니다. 3) 결과물을 저장할 파일에 내용물을 옮겨 적습니다. 4) 내용물 작성이 완료되었다면 파일을 종료합니다. 목표를 달성하는 데 필요한 작업 쪼개기 1) <personal_info> 폴더 안의 내용물을 목록으로 만들기 2) 목록 안의 내용물을 처음부터 끝까지 훑으며, 한 개씩 파일을 읽어오기 3) 읽어온 파일에서 내용물을 뽑아내기 4) 파일에 내용을 기록하고 저장하기 02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기
  • 27. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 27 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (4) 폴더 안의 내용물을 목록으로 만들기 02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기 Git Bash를 실행하여 ipython을 실행합니다. $ ipython >>> import os 파이썬에서 운영체제(os)를 제어하기 위한 도구인 os 모듈을 불러옵니다. >>> os.listdir() ['merged_ID.txt', 'merge_text_files.py', 'personal_info', 'README.md'] Os 모듈의 listdir() 함수를 활용하면 폴더의 내용물을 리스트로 읽어옵니다. >>> os.listdir(“personal_info”) [‘0_김현은.txt’, … 괄호 안에 “personal_info”를 입력하면 해당 폴더의 내용물을 읽어옵니다.
  • 28. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 28 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (5) 파일을 읽어와 내용물 뽑아내기 02. 회원 개인정보 파일 1천 개, 텍스트 파일 하나로 합치기 >>> files = os.listdir(“personal_info”) >>> test_file = files[0] 리스트 내용물 중 첫 번째 파일을 가져오겠습니다. >>> f = open(“personal_info/” + test_file) 아래와 같이 open()을 활용하면 파일을 파이썬에서 불러올 수 있습니다. 괄호 안에 경로명을 포함하여 파일 이름을 기재합니다. >>> content = f.read() >>> content 아래와 같이 read() 명령어를 활용하면 파일 안의 내용물을 통째로 불러와 스트링으로 만들 수 있습니다. >>> f.close() 파일을 불러와 필요한 작업을 마쳤다면 close()를 활용해 파일을 닫아줍니다.
  • 29. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 29 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! CSV 포맷에 익숙해집니다. 문서 1천 개를 CSV 하나로 합쳐봅니다. [ 예제 개요 ] 03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기
  • 30. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 30 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (1) CSV 파일에 대한 설명 03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기 CSV는 Comma-separated values 의 약자입니다. 엑셀과 유사한 표 형태의 데이터를 표현하는 가장 쉬운 방법입니다. 왼쪽의 표를 CSV로 표현하면 오른쪽 표현과 같아집니다. 열(column) 구분은 컴마(,)로 합니다. 행(row) 구분은 엔터(n)로 합니다.
  • 31. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 31 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기 (2) 코드 실행하기 앞선 예제 코드 결과물인 <personal_info> 폴더를 복사하여 “2_3_3_회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기” 폴더에 붙여넣습니다. 폴더에서 Git Bash를 실행하여 아래 코드를 실행합니다. $ python simple_merge_info_csv.py ※ TIP python s 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
  • 32. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 32 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기 (3) 결과물 파일 열어보기 코드를 실행하면 <simple_merged_ID.csv>라는 파일이 생겨납니다. 아이콘이 엑셀 파일 모양입니다. 실행해 봅시다. 파일이 엑셀에서 정상적으로 실행됩니다. 축하합니다! 엑셀 문서 자동화에 성공하셨습니다! 문서의 양식을 깔끔하게 정리하는 방법은 다음 예제에서 공부해 보겠습니다.
  • 33. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 33 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 03. 회원 개인정보 파일 1천 개, CSV 파일 하나로 합치기 (4) 업무 자동화 코드 설계 과정 목표 정하기 앞서 살펴본 2절의 자동화 결과물을 CSV 파일 형태로 바꿔서 저장합니다. 목표를 달성하는 데 필요한 작업 <.txt> 포맷으로 출력되는 파일의 형식을 <.csv>로 변경합니다.
  • 34. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 34 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 표의 양식을 맞추어 CSV 파일로 저장하는 방법을 공부합니다. [ 예제 개요 ] 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기
  • 35. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 35 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (1) 코드 실행하기 앞선 예제 코드 결과물인 <personal_info> 폴더를 복사하여 “2_3_4_개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기” 폴더에 붙여넣습니다. 폴더에서 Git Bash를 실행하여 아래 코드를 실행합니다. $ python merge_info_csv.py ※ TIP python m 까지만 타이핑하고 탭[Tab] 키를 눌러도 됩니다.
  • 36. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 36 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (2) 결과물 파일 열어보기 코드를 실행하면 <merged_ID.csv>라는 파일이 생겨납니다. 아이콘이 엑셀 파일 모양입니다. 실행해 봅시다. 파일이 엑셀에서 정상적으로 실행됩니다. 예쁜 양식으로 정리까지 잘 되었습니다. 축하합니다! 엑셀 문서 자동화에 성공하셨습니다!
  • 37. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 37 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (3) 업무 자동화 코드 설계 과정 목표 정하기 1) 결과물을 저장할 빈 CSV 파일을 생성합니다. 2) CSV 파일에 헤더(header)를 삽입합니다. 3) personal_info 폴더 내부의 내용물을 하나씩 읽어옵니다. 4) 읽어온 내용물을 보기 좋게 다듬어 줍니다. 5) 다듬은 내용물을 결과 파일에 옮겨 적습니다 6) 내용물 작성이 완료되었다면 파일을 종료합니다. 목표를 달성하는 데 필요한 작업 쪼개기 1) personal_info 폴더 안의 내용물을 목록으로 만들기 os.listdir() 2) 폴더 안의 파일을 처음부터 끝까지 한 개씩 읽어오기 for 3) 읽어온 파일에서 내용물을 뽑아냅니다. 4) 파일에 내용물을 기록하고 저장합니다. write() 5) 파일을 읽어와 헤더와 콘텐츠를 분리합니다. 6) 첫 줄에만 헤더를 삽입하고 그 다음 줄부터는 콘텐츠만 삽입합니다.
  • 38. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 38 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (4) readline()을 활용하여 문서 파일 열어오기 >>> f = open(“personal_info/” + test_file) >>> f.readline() name : 조하원 >>> f.readline() age:52 readline()은 호출할 때마다 파일을 위에서부터 한 줄씩 읽어옵니다. >>> test_file = os.listdir(“personal_info/”)[0] >>> f = open(“personal_info/” + test_file) >>> for line in f : >>> print(line) For문을 활용하면 파일을 위에서부터 한 줄씩 읽어올 수 있습니다. 마지막 줄을 읽어온 다음 for문이 종료됩니다.
  • 39. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 39 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (5) 헤더(Header) 헤더는 파일의 머리(head)쪽에 오는 정보입니다. 대부분의 엑셀 파일의 경우 맨 윗줄에 내용물의 분류가 기재되어 있습니다. 이번 예제의 헤더는 name, age, e-mail, division, telephone, sex 입니다.
  • 40. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 40 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (6) 스트링의 스플릿(split) >>> “Pen, Pineapple, Apple, Pen”.split(“,”) [‘Pen’, ‘ Pineapplie’, ‘ Apple’, ‘ Pen’] 스플릿(split)은 스트링을 쪼개는 기법입니다. 아래 코드를 실행해서 스플릿을 체험해 보도록 하겠습니다. 괄호 안에는 컴마(“,”)를 입력했습니다. 원본 스트링 “Pen, Pineapple, Apple, Pen”이 컴마를 기준으로 쪼개졌습니다. 결과물은 쪼개진 스트링이 기록된 리스트입니다. >>> “2020-12-18”.split(“-”) [‘2020’, ‘12’, ‘18’] 스플릿을 익숙하게 사용할 수 있을 때가지 몇 차례 연습을 해 보시기 바랍니다. 스플릿을 조금 더 체험해 보겠습니다.
  • 41. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 41 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (7) 스플릿을 활용한 헤더와 컨텐츠 분리 >>> f = open(“personal_info/” + test_file) >>> line1 = f.readline() >>> line1 ‘name : 조하원n’ 텍스트 파일을 불러와 스플릿을 실행해 보겠습니다. 우선 파일을 불러옵니다. line1 변수를 확인해 보면 맨 뒤에 개행(줄바꿈) 문자 n이 입력되어 있습니다. 아래 코드를 실행하면 스트링 좌우의 공백과 줄바꿈을 제거할 수 있습니다. >>> line1 = line1.strip() >>> line1 ‘name : 조하원’ strip()은 스트링 좌우의 공백을 벗겨내는 함수입니다.
  • 42. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 42 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (8) 스플릿을 활용한 헤더와 컨텐츠 분리 텅 빈 리스트를 2개 만들어 헤더와 컨텐츠를 정리해 보겠습니다. 지금까지 배운 기법들을 코드로 정리하겠습니다. >>> header = [] >>> contents = [] >>> f = open(“personal_info/” + test_file) >>> line = f.readline() >>> splt = line.strip().split(“ : ”) >>> header.append(splt[0]) >>> contents.append(splt[1]) 위 코드를 실행하면 파일의 첫 번째 줄이 분리되어 정리됩니다. >>> header ‘name’ >>> contents ‘조하원’
  • 43. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 43 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (8) 스플릿을 활용한 헤더와 컨텐츠 분리 >>> line = f.readline() >>> splt = line.strip().split(“ : ”) >>> header.append(splt[0]) >>> contents.append(splt[1]) 파일은 총 6줄로 구성되어 있으므로 아래 코드를 총 6회 반복해야 합니다. 반복문을 활용하기 좋은 상황입니다. >>> header = [] >>> contents = [] >>> f = open(“personal_info/” + test_file) >>> for line in f: >>> splt = line.strip().split(“ : ”) >>> header.append(splt[0]) >>> contents.append(splt[1]) 위 코드를 실행하면 하나의 파일이 통째로 분리됩니다.
  • 44. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 44 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (9) 리스트를 스트링으로 이어붙이기 >>> header [‘name’, ‘age’, ‘e-mail’, ‘division’, ‘telephone’, ‘sex’] >>> contents [‘조하원’, ‘52’, ’90tmv14e@bhban.com’, ‘z42’, ‘010-6652-1966’, ‘female’] 헤더와 컨텐츠는 리스트에 분리된 채로 저장되어 있습니다. CSV 포맷은 위 자료를 아래와 같이 한 줄의 스트링으로 합쳐야 합니다. “name, age, e-mail, division, telephone, sex” “조하원, 52, 92tmv14e@bhban.com, z42, 010-6652-1966, female” >>> “, ”.join(header) ‘name, age, e-mail, division, telephone, sex’ >>> “, ”.join(contents) ‘조하원, 52, 92tmv14e@bhban.com, z42, 010-6652-1966, female’ 아래와 같이 join() 함수를 활용하면 위 작업을 한 번에 수행할 수 있습니다.
  • 45. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 45 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 04. 개인정보 파일 1천 개, CSV 파일로 예쁘게 합치기 (10) 불리언 변수를 활용한 코드 분기 메모 불리언 변수 True와 False를 활용하면 일종의 메모를 할 수 있습니다. >>> done = False >>> for i in range(5): >>> if not done: >>> print(i) >>> done = True 0 위 코드를 실행하면 최초 1회만 if문 아래의 코드가 실행됩니다. 변수 done의 값이 True로 변하면서 if 뒤의 조건이 False가 되기 때문입니다. 이를 응용하여 출력 파일에 헤더를 1회만 삽입하도록 코드를 설계하겠습니다.
  • 46. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 46 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! CSV 파일을 Xlsx 엑셀 파일로 변환합니다. [ 예제 개요 ] 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기
  • 47. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 47 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (1) PyExcel 라이브러리 설치 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 파이썬의 가장 큰 장점은 다른 사람이 만든 코드를 받아와 쉽게 활용할 수 있다는 점입니다. 파이썬에서 엑셀 파일 편집을 쉽게 할 수 있도록 도와주는 PyExcel 라이브러리를 설치해 보겠습니다. Git Bash에서 아래 명령어를 실행해 주시기 바랍니다. $ pip install pyexcel pyexcel-xlsx 화면에 메시지들이 출력되며 잠시 뒤 설치가 완료됩니다.
  • 48. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 48 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (2) 코드 실행하기 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 4절에서 완성된 <merged_ID.csv> 파일을 “2_3_5_개인정보 CSV 파일, 엑셀로 변환하기” 폴더에 복사합니다. 이 폴더에서 Git Bash를 실행하고 아래와 같이 코드를 실행합니다. $ python csv_to_xlsx.py merged_ID.csv test.xlsx ※ TIP 탭[Tab] 키를 눌러 자동완성 기능을 사용하면 편리합니다. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte 코드를 실행하면 아래와 같이 에러가 발생하며 코드가 종료됩니다. 인코딩 관련 에러입니다.
  • 49. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 49 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (3) 인코딩 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 알파벳 A 100101101101… 11011101011… 1110101100011… … 알파벳 A 디코딩 1 알파벳 A 디코딩 2 ???????? 디코딩 1 인코딩 데이터를 컴퓨터의 언어로 암호화하는 것 디코딩 데이터를 인간이 이해할 수 있는 형태로 해독하는 것
  • 50. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 50 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (3) 인코딩 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte 위 에러는 잘못된 방식으로 데이터를 해독하려 시도했기 때문에 발생하는 에러입니다. PyExcel 라이브러리는 utf-8 이라는 디코딩 기법으로 데이터를 해독합니다. CSV 파일을 utf-8 포맷으로 변환해 주면 PyExcel이 정상적으로 데이터를 인식할 수 있습니다.
  • 51. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 51 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (3) 인코딩 변환 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 CSV 파일의 인코딩을 UTF-8로 변환하겠습니다. 예제 폴더에서 Git Bash를 실행하고 아래 코드를 실행합니다. $ python euc_to_utf.py merged_ID.csv 폴더 안에 ‘utf8_merged_ID.csv’ 라는 파일이 생성됩니다. 이 파일은 UTF-8 인코딩 기법을 사용해 데이터를 표현합니다. 결과 파일을 실행해 봅시다.
  • 52. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 52 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (3) 인코딩 변환 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 한글이 제대로 표현되지 않습니다. 정상적인 실행 결과입니다. 엑셀은 EUC-KR 인코딩을 사용하므로 UTF-8 데이터 해독에 실패한 모습입니다.
  • 53. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 53 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 (4) 업무 자동화 코드 설계 과정 – 인코딩 변환 목표 정하기 1) EUC-KR로 인코딩된 CSV 파일을 불러옵니다. 2) UTF-8로 저장할 새로운 파일을 생성합니다. 3) EUC-KR 파일의 내용물을 모두 불러와 UTF-8로 저장합니다. 4) 파일을 모두 종료합니다. 목표를 달성하는 데 필요한 작업 쪼개기 1) 파일을 읽어올 때, 그 파일의 인코딩을 EUC-KR로 지정하며 불러오기 2) UTF-8로 인코딩을 지정하여 저장할 파일을 생성하기 3) 파일의 내용물을 옮겨 적기
  • 54. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 54 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 (5) sys.argv 활용법 $ python euc_to_utf.py merged_ID.csv 이번 예제는 앞선 예제들과 달리 python <코드파일 이름> 뒤에 파일 이름을 하나 더 입력했습니다. 이렇게 외부로부터 정보를 입력받을 수 있도록 코드를 만들면 하나의 코드를 수정없이 여러 업무에 적용할 수 있습니다. >>> import sys >>> filename = sys.argv[1] 위와 같은 코드를 본문에 삽입하는 것으로 기능을 수행할 수 있습니다. Sys.argv는 파일 이름 뒤에 입력받은 정보를 리스트로 가공해 저장합니다. Sys.argv[0]은 파이썬 코드 파일 이름이며, 그 다음 값들은 코드 실행시 입력받은 정보들이 순서대로 저장됩니다.
  • 55. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 55 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 (6) 인코딩을 지정하며 파일 불러오기 앞서 open()을 활용하여 파일을 불러오는 방법을 공부했습니다. >>> f = open(“merged_ID.csv”) 아래와 같은 방법으로 불러올 파일의 인코딩을 지정할 수 있습니다. >>> f = open(“merged_ID.csv”, encoding=“euc-kr”) 아래와 같이 utf-8을 지정할 수도 있습니다. >>> f = open(“merged_ID.csv”, encoding=“utf-8”) 'w'로 쓰기 모드로 open()을 실행할 때에도 적용 가능합니다. >>> f = open(“test.txt”, “w”, encoding=“euc-kr”)
  • 56. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 56 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! (7) 다시 코드 실행하기 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 다시 코드를 실행합니다. 아래와 같이 파일명을 수정해야 함에 주의해 주시기 바랍니다. $ python csv_to_xlsx.py utf8_merged_ID.csv test.xlsx 이번에는 코드가 정상적으로 실행됩니다. 폴더 안에 test.xlsx 파일이 새로 생겨났습니다.
  • 57. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 57 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 (8) 업무 자동화 코드 설계 과정 – CSV를 Xlsx로 변환 목표 정하기 1) CSV 파일을 엑셀 파일로 변환해주는 라이브러리를 찾아봅니다. 2) 그 라이브러리를 활용해서 문제를 해결합니다. 목표를 달성하는 데 필요한 작업 쪼개기 1) PyExcel 라이브러리 설치 pip install pyexcel pyexcel-xlsx 2) PyExcel 내장 기능 활용하여 xlsx로 변환하기
  • 58. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 58 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 (9) CSV를 엑셀로 변환하기 >>> import pyexcel.cookbook PyExcel 라이브러리의 기능 중에서 cookbook을 불러옵니다. >>> pyexcel.cookbook.merge_all_to_a_book() Cookbook의 내장 기능인 merge_all_to_a_book() 함수를 사용할 것입니다. >>> import pyexcel.cookbook as pc >>> pc.merge_all_to_a_book() 그런데 위와 같이 호출하면 이름이 너무 길고 복잡합니다. 아래와 같이 as를 활용해 import한 라이브러리의 이름을 줄일 수 있습니다.
  • 59. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 59 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 05. 개인정보 CSV 파일, xlsx 엑셀 파일로 변환하기 (10) CSV를 엑셀로 변환하기 >>> csv_list = [“test1.csv”, “test2.csv”, “test3.csv”] Merge_all_to_a_book은 여러 개의 CSV를 하나로 합쳐 주는 함수입니다. 합쳐진 결과물을 csv 또는 xlsx로 저장할 수 있습니다. 하나로 합치려고 하는 csv 파일 이름들을 리스트로 제공합니다. >>> pc.merge_all_to_a_book(csv_list, “result.csv”) 아래 코드를 실행하면 csv_list에 기재된 파일들이 하나의 csv파일로 합쳐집니다. 결과 파일의 이름은 result.csv 입니다. >>> pc.merge_all_to_a_book(csv_list, “result.xlsx”) 아래와 같이 결과 파일의 확장자를 xlsx로 수정하면 결과 파일이 엑셀 xlsx 파일로 저장됩니다. >>> pc.merge_all_to_a_book([“test1.csv”], “result.xlsx”) 한 개의 csv파일을 xlsx로 변환할 때에는 원소가 1개인 리스트로 입력합니다.
  • 60. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 60 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 1천 개의 텍스트 파일을 Xlsx 파일 하나로 합칩니다. [ 예제 개요 ] 06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기
  • 61. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 61 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기 (1) 코드 실행하기 1절에서 생성한 <personal_info> 폴더를 “2_3_6_회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기" 폴더로 복사합니다. Git Bash를 실행하여 아래와 같이 코드를 실행합니다. $ python merge.py personal info ※ TIP 탭[Tab] 키를 눌러 자동완성 기능을 사용하면 편리합니다. 코드 실행이 완료되면 <merged_ID.xlsx> 파일이 생성됩니다.
  • 62. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 62 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기 (2) 결과물 파일 열어보기 <merged_ID.xlsx> 파일을 열어 봅니다. 파일이 엑셀에서 정상적으로 실행됩니다. 예쁜 양식으로 정리까지 잘 되었습니다. 축하합니다! 지금까지 배운 내용들을 모두 활용해 텍스트 파일을 엑셀로 변환했습니다!
  • 63. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 63 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기 (3) 업무 자동화 코드 설계 과정 목표 정하기 1천 개의 txt 파일을 xlsx 파일로 변환합니다. 목표를 달성하는 데 필요한 작업 쪼개기 1) 1천 개의 txt 파일을 하나씩 열어오기 2) 예쁘게 다듬어 xlsx 파일로 저장하기
  • 64. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 64 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기 (4) 문제 해결 전략 .txt .txt .txt .txt .txt .txt .txt .txt .txt .txt .txt .txt .txt .txt .csv .xlsx 텍스트 파일 1천 개를 csv 파일 하나로 합치고, 이 파일을 xlsx 파일로 변환합니다. 변환이 끝난 뒤 .csv 파일은 삭제합니다.
  • 65. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 65 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 06. 회원 개인정보 파일 1천 개, CSV를 거쳐 xlsx 엑셀 파일로 합치기 (5) 파일 삭제하기 >>> os.remove(“test.txt”) 파일 삭제 방법을 연습하기 위하여 임시로 파일을 하나 생성합니다. >>> a = open(“test.txt”, “w”) >>> a.close() os 모듈을 불러옵니다. >>> import os 아래와 같이 os.remove() 함수를 호출하면 test.txt 파일이 삭제됩니다. os.remove()의 괄호 안에 삭제하려는 파일 이름을 입력하면 파일을 삭제할 수 있습니다.
  • 66. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 66 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 1천 건의 개인정보 파일을 보다 스마트한 방식으로 엑셀 파일 하나로 합칩니다. [ 예제 개요 ] 07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기
  • 67. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 67 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기 (1) 코드 실행하기 1절에서 생성한 <personal_info> 폴더를 “2_3_7_회원 개인정보 파일 1천 개, xlsx 엑셀 파일로 바로 합치기” 폴더로 복사합니다. Git Bash를 실행하여 아래와 같이 코드를 실행합니다. $ python merge.py personal info ※ TIP 탭[Tab] 키를 눌러 자동완성 기능을 사용하면 편리합니다. 코드 실행이 완료되면 <merged_ID.xlsx> 파일이 생성됩니다.
  • 68. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 68 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기 (2) 결과물 파일 열어보기 <merged_ID.xlsx> 파일을 열어 봅니다. 앞선 예제 결과에 비해 용량이 적습니다. 나이 좌측 상단에 삼각형 표시가 뜹니다.
  • 69. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 69 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기 (3) 업무 자동화 코드 설계 과정 목표 정하기 1) 개인정보 파일 1000개를 불러옵니다. 2) 파일을 하나로 합칩니다. 3) 데이터를 CSV파일로 저장하지 않고, 바로 엑셀 파일로 저장합니다. 목표를 달성하는 데 필요한 작업 쪼개기 파일을 예쁘고 편하게 가공하기 위한 방법을 찾아보기  PyExcel 라이브러리의 설명서를 참고하자!
  • 70. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 70 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기 (4) 표를 리스트로 표현하는 방법 좌측의 CSV 포맷은 우측과 같은 방법으로 리스트로 표현할 수 있습니다. >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] >>> a[0] [1, 2, 3] 인덱싱을 수행하면 표의 행에 접근할 수 있습니다. >>> a[0][0] 1 개별 원소에 접근하려면 2중 인덱싱을 수행합니다. >>> a[0][1] 2 >>> a[0][2] 3
  • 71. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 71 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! 07. 회원 개인정보 파일 1천 개, xlsx 엑셀 파일 하나로 바로 합치기 (5) 리스트로 표현된 표를 저장하는 방법 >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 위 배열을 엑셀 파일로 저장하는 코드는 아래와 같습니다. >>> import pyexcel as px >>> px.save_as(array=a, dest_file_name=“test.xlsx”) array에는 내용물이 기재된 리스트를 입력합니다. dest_file_name에는 저장하려는 파일 이름을 기재합니다. 코드의 실행 결과는 우측과 같습니다.
  • 72. 6개월 치 업무를 하루 만에 끝내는 업무 자동화 72 Chapter 03 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! Chapter 3 되돌아보기 • 파이썬의 기초 문법을 공부했습니다. • 문서 파일 자동화를 위한 파이썬의 기본 기능을 배웠습니다. • 외부 라이브러리를 설치하고 불러오는 방법을 익혔습니다. • Txt 파일을 생성하고 내용물을 편집하는 방법을 익혔습니다. • CSV 파일을 공부했고, 생성하는 방법을 익혔습니다. • PyExcel 라이브러리를 활용한 엑셀 자동화를 체험했습니다. • Random, Time, Os 모듈을 배웠습니다.

Editor's Notes

  1. 1608210182.8376439
  2. 1608210182.8376439
  3. 1608210182.8376439
  4. 1608210182.8376439
  5. 1608210182.8376439
  6. ['merged_ID.txt', 'merge_text_files.py', 'personal_info', 'README.md']
  7. ['merged_ID.txt', 'merge_text_files.py', 'personal_info', 'README.md']