일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 화상영어
- 괜찮음
- 리얼 클래스
- 쓰릴오브파이트
- 프로젝트
- leetcode
- 사이드
- 잡생각
- FIT XR
- 읽기
- 30분
- Writing
- Problem Solving
- 미드시청
- 운동
- 만화도
- 월간
- Daily Challenge
- 링피트
- English
- realclass
- 스탭퍼
- 뭐든
- 10분
- 영어원서읽기
- 영어공부
- 개발자
- 매일
- 파비최
- 3줄정리
Archives
- Today
- Total
파비의 매일매일 공부기록
티스토리 자동 글 생성기 using Python #3 본문
오늘은 CSV 파일을 입력받아서 글 자동 생성하는 로직을 작성할 예정이다.
파이썬 내장 모듈 중 csv가 있어서 다른 거 안 찾아보고 그냥 이걸 쓰기로 함.
(https://docs.python.org/ko/3/library/csv.html)
다음과 같이 파일을 읽어서 배열 형태로 리턴하는 함수를 하나 만든다.
def get_csv_file(filename):
data = []
f = open(filename, 'r', encoding='utf-8')
csv_reader = csv.DictReader(f)
for line in csv_reader:
data.append(line)
f.close()
return data
DictReader가 엄청 유용했다.
처음에는 그냥 Reader 써서 테스트를 해봤다.
그런데 첫 줄인 Header도 딸려오고 따로 어떻게 처리하면 좋을까 하면서 API 문서를 내리다 보니 발견!
get_csv_file 함수와 함께 main 쪽 호출 로직도 일부 변경했다.
if __name__ == '__main__':
init_params = get_init_params()
extra_params = get_csv_file('example.csv')
params_list = make_posts(init_params, extra_params)
for params in params_list:
requests.post('https://www.tistory.com/apis/post/write', params=params)
get_init_params()에는 액세스 토큰, 출력 타입(json), 블로그 이름과 같이 변하지 않는 값들을 불러오도록 캡슐화했다.
make_posts() 함수의 경우에도
이전에 매우 지저분했던 반복문을 좀 더 간단히 리펙토링 했다.
def make_posts(init_params, extra_params):
posts = []
for params in extra_params:
params.update(init_params)
# 발행일 포맷 변환
published = time.mktime(datetime.strptime(params.get('published'), '%Y-%m-%d %H:%M:%S').timetuple())
params['published'] = published
posts.append(params)
return posts
발행일 포맷 변환 부분 가독성이 조금 떨어지긴 하는데..
딱히 어려운 로직은 아니라서(str type의 datetime 형식의 값을 받아서 datetime type으로 변환하고, 그걸 다시 unix time으로 변환하는 부분) 그냥 길게 내버려 두었다.
오늘은 왠지 소스만 복붙 하는 거 같네.
이제 남은 건 example.csv가 소스에 포함되어 있던걸
콘솔에서 파일명을 입력받아 처리하도록 구현하는 것과
Repo 소개 파일인 Readme.md 파일 추가가 남았다.
그 외에는 굳이 더 추가할 내용은 없는 듯? (아직까진..)
반응형
'Side Project (완료) > 티스토리 자동 글 생성기 (2021)' 카테고리의 다른 글
티스토리 자동 글 생성기 using Python #6 - 깃헙 액션 적용 (완료) (0) | 2023.01.17 |
---|---|
티스토리 자동 글 생성기 using Python #5 - 깃헙 액션 적용 (2) | 2023.01.15 |
티스토리 자동 글 생성기 using Python #4 (마지막) (0) | 2021.09.06 |
티스토리 자동 글 생성기 using Python #2 (0) | 2021.09.04 |
티스토리 자동 글 생성기 using Python #1 (2) | 2021.09.03 |
Comments