[python] \b(백스페이스) 문자 제거하기

2023. 2. 1. 03:07·언어/python

파이썬에서 \b 문자를 제거해야되는 상황을 만났다.

 

file_name = './root/redirect.py'
cmd_reculsive = [sys.executable, '-u', file_name, '-r']    

p = subprocess.Popen(cmd_reculsive,
                 stdout=subprocess.PIPE,
                 stderr=subprocess.STDOUT,
                 universal_newlines=False)

while p.poll() == None:
        out = p.stdout.readline().decode('utf-8').replace('\x08','')
        print(out, end='')
        socketio.send({"data":out},json=True)
        socketio.sleep(0)

위 코드는 '\b'문자를 제거해야되는 코드로 '\b' 문자를 출력하는 파일을 subprocess의 Popen() 함수로 실행시킨 후 출력되는 내용을 websocket을 통해 상대방에게 보내는 코드이다. 

 

 

out = p.stdout.readline().decode('utf-8').replace('\x08','')

위 코드는 전체 코드 중 '\b' 문자를 제거하는 코드이다.

Popen 함수에서 universal_newlines를 False로 주게되면 출력값이 bytes 형태로 나오게 된다. 따라서 utf-8로 decode하여 str형태로 만든 후 replace()함수를 사용하여 '\x08' 문자를 찾아 모두 ''로 변경하도록 했다.('\b' 문자는 백스페이스를 의미하며 이는 아스키 코드값으로 '\x08'이다.)

 

 

newString = string.replace('\x08','')

이미 str 형태의 문자열에서 '\b'문자를 제거하려면 위 코드를 사용하면 된다.

'\b' 제거하는 방법과 마찬가지로 다른 제어문자를 제거하려면 '\x08' 자리에 제거하려는 제어문자의 아스키 코드값을 넣으면 된다.

 

저작자표시 (새창열림)

'언어 > python' 카테고리의 다른 글

[python] flask-socketio에서 버퍼링 없이 데이터 보내기  (2) 2023.01.20
[python] 줄바꿈을 기준으로 문자열 분리하기  (0) 2023.01.14
[python] OSError: [Errno 98] Address already in use  (0) 2023.01.13
'언어/python' 카테고리의 다른 글
  • [python] flask-socketio에서 버퍼링 없이 데이터 보내기
  • [python] 줄바꿈을 기준으로 문자열 분리하기
  • [python] OSError: [Errno 98] Address already in use
Tae-Jun
Tae-Jun
  • Tae-Jun
    Tae-Jun
    Tae-Jun
  • 전체
    오늘
    어제
    • IT (22)
      • 언어 (6)
        • javascript (1)
        • python (4)
        • MySQL (1)
      • 프레임워크 (6)
        • react (1)
        • Android studio (1)
        • nodejs (1)
        • react-native (1)
        • docker (2)
      • AI (4)
      • 알고리즘 (4)
        • 개념 (3)
        • 문제풀이 (1)
      • 프로젝트 (1)
        • AWS (1)
        • 결과 (0)
      • MLOps (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • 홈페이지
    • github
  • 공지사항

  • 인기 글

  • 태그

    raect
    RefreshToken
    SiLU
    Code: 1175
    splitlines()
    docker
    JWT
    gpu 사용량
    C
    flask
    Errno 98
    알고리즘
    Python
    YOLOv8
    이미지 사라짐
    ultralytics
    \b 제거
    custom training
    image pull policy
    자료구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Tae-Jun
[python] \b(백스페이스) 문자 제거하기
상단으로

티스토리툴바