[Blog] 구글 블로그 에서 깃허브 블로그로 이전하는 방법 (3)
이전 포스트에서 구글 백업본 파일을 각각의 html 파일로 만드는데 까지 성공했다. 하지만 categories 각각의 html 파일들에게 categories 항목을 추가해줘야 됬다.
[github pages] 구글 블로그 에서 깃허브 블로그로 이전하는 방법 (2)
categories 항목은 직접 글내용을 보고 넣어줘야 되기 때문에 일괄적으로 처리할 수는 없다.
하지만 어느정도 글 내용만 알고있으면 **같은 categories인 글들만 따로 모아두어서 일괄적으로 넣을수는 있다. **
일일히 수백개의 같은 categories 글들을 수작업 할필요는 없다.
python으로 _posts 폴더에 일괄처리 작업할 같은 categories의 html 파일들을 넣어두고 실행하면 categories 가 삽입되도록 간단하게 코드를 짜보았다.
classes : wide
import os def insert_categories(*categories): #카테고리 매개변수를 차례대로 입력받으면 그 카테고리들을 삽입하는 함수. #가변매개변수(가변인자) categories 사용 file_list = os.listdir("./_posts") #폴더내의 전체 파일목록들 불러와서 list 변수에 저장. for file_name in file_list: # file_list의 길이만큼 실행. file_name에는 file_list 의 value 들이 들어감. path = "./_posts/" + file_name # ./_posts/2021-0412-reflection.html 형식으로 파일경로 문자열 생성 file = open(path, 'r', encoding="utf8") string = file.readlines() #파일 전체를 읽어옴. 리스트 형태로 저장. flag = False # --- 의 시작과 끝을 판별하는 플래그 contains_categories = False # categories 항목이 존재하는지 확인하는 플래그. 항목이 있으면 on for line, text in enumerate(string): # string 안에있는 문자들을 1라인씩 line 넣어서 차례대로 검사한다 # line 에는 반복문 횟수가 들어간다. # 우선 상단 속성 설정 전체를 훑으면서 categories 가 있는지 검사한다. if (("---" in text) and (flag == True)): #문서 상단의 --- 속성 설정부분 끝남. #문서 상단의 --- 속성 설정부분만 작업하는것이므로, 그 밑에줄은 더이상 작업할것이 없으니 반복문 중지. break if '---' in text: flag = True # 문단 상단의 --- 속성 설정부분 시작 if "categories" in text: contains_categories = True if (contains_categories == False): #categories 가 없으면 삽입 작업 시작. file = open(path, 'w', encoding='utf8') # 저장모드로 파일 열음. for line, text in enumerate(string): # string 안에있는 문자들을 1라인씩 line에 넣어서 차례대로 검사한다 # line 에는 반복문 횟수가 들어간다. if "date" in text: #date 밑에다가 categories 삽입 string[line] = string[line] + "categories : " # tags 바로 윗라인에 categories : 텍스트 추가 for count, args in enumerate(categories): string[line] = string[line] + "\n- "+args #categories 값들 추가 string[line] = string[line] + "\n" break # categories 삽입도 다 끝났고 더이상 작업할것이 없어서 작업중지 file.writelines(string) # 수정한 전체내용 파일에다가 저장. string.clear() # 다음 파일 읽어올떄를 위해 string list 초기화 file.close() # 파일 닫음 if __name__ == '__main__': insert_categories("github pages") #args 넣으면 넣은대로 categories 밸류 추가됨. insert_categories("android", "java", .....args) | cs |
실행결과)
정상적으로 categories 항목이 새롭게 추가되었다는것을 알수 있다.