본문 바로가기
ETC/에러 모음

Python 문장 한 글자씩 쓰는법

by Guardy 2020. 8. 12.
728x90

Python으로 글자를 쓰는 방법은 두 가지 방법이 있다.

첫 번째 방법은 pyautogui의 typewrite를 이용하는 것이고, 두 번째 방법은 pyperclip의 copy를 이용하는 것이다.

 

pyautogui typewrite 사용법

pyautogui.typewrite(['h','e','l','l','o'],interval=1)

다음과 같이 인터벌을 줄 수 있어 사용하기 편리하다.

하지만 pyautogui의 치명적인 단점이 있다. 바로 한글을 지원하지 않는다는 점이다.

 

pyperclip copy 사용법

두번 째 방법은 pyperclip의 copy를 사용하는 방법이다. copy를 사용한다면 클립보드에 저장된다.

클립보드에 저장된 글자는 Ctrl v를 이용하여 사용할 수 있다.

코드를 다음과 같이 작성할 수 있다.

pyperclip.copy('안녕하세요')
pyautogui.hotkey("ctrl", "v")

그렇다면 이 문장을 어떻게 하면 나눌 수 있을 까?

list을 이용하면 된다.

str = "안녕하세요"
str_list = list(str)

다음과 같이 코드를 작성하고 str_list를 출력을 하면 다음과 같은 결과가 나온다.

['안','녕','하','세','요']

 

list만 사용했을 뿐인데 알아서 나눠주었다.

 

그렇다면 txt파일에 있는 내용을 한 글자씩 쓰려면 어떻게 코드를 작성해야할까

다음과 같이 작성할 수 있을 것이다.

import time
import pyperclip
import pyautogui

data = open('content.txt', 'r',encoding='utf8')
lines = data.read()
data.close()

str_list = (list(lines))

for i in range(len(str_list)):
    time.sleep(0.1)
    if(str_list[i]=='\\' and str_list[i+1]=="n"):
        pyautogui.hotkey("enter")
    if str_list[i-1]=="\\" and str_list[i]=="n":
        pass
    else:
        pyperclip.copy(str_list[i])
        pyautogui.hotkey("ctrl", "v")

개행에 대한 조건을 주기 위해 if문을 작성하였다.

개행은 특이한 점이 \ n 따로 인게 아니라 \n 함께 list에 넣어진다.

 

728x90