문자열 형식화 너비 필드에서 길이가 0 인 제어 문자를 계산하는 Python?

John de Largentaye

Python 3.4.3에서 string.format () 연산자를 사용하여 일부 필드의 너비를 정렬하려고했는데 너비 합계에 대해 길이가 0 인 제어 문자를 계산하는 것처럼 보입니다. 샘플 코드 :

ANSI_RED = "\033[31m"
ANSI_DEFAULT="\033[39m\033[49m"

string1 = "12"
string2 = ANSI_RED+"12"+ANSI_DEFAULT

print("foo{:4s}bar".format(string1))
print("foo{:4s}bar".format(string2))

그러면 다음이 출력됩니다.

foo12  bar
foo12bar

(두 번째 출력은 '12'가 빨간색으로 표시되지만 SO에서는 재현 할 수 없습니다.)

두 번째 경우에는 필드 너비를 잃어 버렸습니다. 파이썬이 문자열의 총 문자 수가 너비보다 크다는 것을 보았 기 때문에 대부분의 문자가 ANSI 규격 터미널에서 길이가 0이 되었음에도 불구하고 생각합니다.

ANSI 색상과 작업 필드 너비를 갖는 깨끗한 방법은 무엇입니까?

레이몬드 헤 팅거

ANSI 색상과 작업 필드 너비를 갖는 깨끗한 방법은 무엇입니까?

불행히도 표시되는 필드 너비를 얻으려면 이스케이프 시퀀스를 제거해야합니다.

len()함수는 Python 2 str 유형의 바이트 수와 Python 3 str 유형의 코드 포인트 수를 반환합니다. 이 길이는 디스플레이 너비와 일치한다고 보장 된 적이 없습니다 (더 어려운 문제).

>>> s = 'abc\bde'
>>> print s
abcde
>>> len(s)
6

일반적으로 디스플레이가 코드를 해석하는 방법에 대해 알지 않는 한 특정 디스플레이 너비를 알 수 없습니다 (즉, 장치가 ANSI 이스케이프 시퀀스를 지원하는지 여부에 따라 너비가 다릅니다).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++ 문자열에 문자를 할당하면 문자열 길이가 0 인 이유는 무엇입니까?

분류에서Dev

Excel 파일에서 너비가 0 인 문자를 제거하려면 어떻게합니까?

분류에서Dev

어셈블리에서 문자열 길이를 가져 오는 짧은 형식

분류에서Dev

Python 문자열 형식화에 문제가 표시됨

분류에서Dev

길이가 0 인 문자형 벡터를 빈 문자열로 처리

분류에서Dev

필러가 두 문자 이상인 Python 3 문자열 형식

분류에서Dev

쿼리 문자열의 한 필드가 비어 있고 문자열 형식 인 경우 테이블에서 모든 값을 반환합니다.

분류에서Dev

오류를 제공하는 Python 코드-TypeError : 문자열 형식 중 일부 인수가 변환되지 않음

분류에서Dev

길이와 너비를 문자열 형식으로 표현하려면 어떻게해야합니까?

분류에서Dev

bash에서 너비와 높이가 0 인 문자 인쇄

분류에서Dev

and를 제외한 문자열의 모든 단어에 문자를 추가하는 Python 정규식

분류에서Dev

TypeError : 형식 문자열에 대한 인수가 충분하지 않음-Python 형식 문제

분류에서Dev

Python 정수 산술 : 문자열 형식화 중에 모든 인수가 변환되는 것은 아닙니다.

분류에서Dev

인수 개수가 잘못되었습니다. 형식 문자열 [name]에는 0이 필요하지만 형식 호출은 1을 제공합니다.

분류에서Dev

길이가 8 인 영숫자 문자열 사이에 하이픈 하나를 허용하는 정규식

분류에서Dev

괄호를 제외한 문자열에서 영숫자가 아닌 문자를 제거하는 Python 정규식

분류에서Dev

사용하지 않는 위치 인수를 문자열 형식화에서 건너 뛰었습니다 (Swift).

분류에서Dev

Excel 수식 – 총계가 문자열과 같고 인접한 행이 비어있는 경우 계산

분류에서Dev

캔버스는 자식을 추가 한 후 너비가 0입니다. 캔버스에서 너비를 다시 계산하는 방법은 무엇입니까?

분류에서Dev

가변 문자열 제한 "% * s"with sscanf () ==> "형식 문자열에서 사용되지 않는 데이터 인수"

분류에서Dev

Python에서 GQL 쿼리가 제공하는 고유 한 문자열 수 계산

분류에서Dev

길이가 n 인 m 개의 비트 문자열이 주어지면 각 위치에서 1 비트 문자열에만 세트 비트가있는 것과 같은 정확히 k 비트 문자열 세트가 있는지 확인합니다.

분류에서Dev

길이가 n 인 m 개의 비트 문자열이 주어지면 각 위치에서 1 비트 문자열에만 세트 비트가있는 것과 같은 정확히 k 비트 문자열 세트가 있는지 확인합니다.

분류에서Dev

어떻게 자바에서 문자열 배열에서 가장 긴 알파벳 단어를 인식하는? (기호 또는 번호없이 문자열)

분류에서Dev

문자가 문자열에서 연속적인 방식으로 나타나는 횟수를 계산

분류에서Dev

포인터를 사용하여 문자열 길이를 얻으려면 아래 코드에 어떤 문제가 있습니까?

분류에서Dev

오류-추가 정보 : 초기화 문자열의 형식이 인덱스 0에서 시작하는 사양을 따르지 않습니다.

분류에서Dev

Hive : 문자열의 하위 문자열에서 0이 아닌 문자 계산

분류에서Dev

단어를 읽고 Python에서 길이별로 정렬 된 모든 하위 문자열을 인쇄합니다.

Related 관련 기사

  1. 1

    C ++ 문자열에 문자를 할당하면 문자열 길이가 0 인 이유는 무엇입니까?

  2. 2

    Excel 파일에서 너비가 0 인 문자를 제거하려면 어떻게합니까?

  3. 3

    어셈블리에서 문자열 길이를 가져 오는 짧은 형식

  4. 4

    Python 문자열 형식화에 문제가 표시됨

  5. 5

    길이가 0 인 문자형 벡터를 빈 문자열로 처리

  6. 6

    필러가 두 문자 이상인 Python 3 문자열 형식

  7. 7

    쿼리 문자열의 한 필드가 비어 있고 문자열 형식 인 경우 테이블에서 모든 값을 반환합니다.

  8. 8

    오류를 제공하는 Python 코드-TypeError : 문자열 형식 중 일부 인수가 변환되지 않음

  9. 9

    길이와 너비를 문자열 형식으로 표현하려면 어떻게해야합니까?

  10. 10

    bash에서 너비와 높이가 0 인 문자 인쇄

  11. 11

    and를 제외한 문자열의 모든 단어에 문자를 추가하는 Python 정규식

  12. 12

    TypeError : 형식 문자열에 대한 인수가 충분하지 않음-Python 형식 문제

  13. 13

    Python 정수 산술 : 문자열 형식화 중에 모든 인수가 변환되는 것은 아닙니다.

  14. 14

    인수 개수가 잘못되었습니다. 형식 문자열 [name]에는 0이 필요하지만 형식 호출은 1을 제공합니다.

  15. 15

    길이가 8 인 영숫자 문자열 사이에 하이픈 하나를 허용하는 정규식

  16. 16

    괄호를 제외한 문자열에서 영숫자가 아닌 문자를 제거하는 Python 정규식

  17. 17

    사용하지 않는 위치 인수를 문자열 형식화에서 건너 뛰었습니다 (Swift).

  18. 18

    Excel 수식 – 총계가 문자열과 같고 인접한 행이 비어있는 경우 계산

  19. 19

    캔버스는 자식을 추가 한 후 너비가 0입니다. 캔버스에서 너비를 다시 계산하는 방법은 무엇입니까?

  20. 20

    가변 문자열 제한 "% * s"with sscanf () ==> "형식 문자열에서 사용되지 않는 데이터 인수"

  21. 21

    Python에서 GQL 쿼리가 제공하는 고유 한 문자열 수 계산

  22. 22

    길이가 n 인 m 개의 비트 문자열이 주어지면 각 위치에서 1 비트 문자열에만 세트 비트가있는 것과 같은 정확히 k 비트 문자열 세트가 있는지 확인합니다.

  23. 23

    길이가 n 인 m 개의 비트 문자열이 주어지면 각 위치에서 1 비트 문자열에만 세트 비트가있는 것과 같은 정확히 k 비트 문자열 세트가 있는지 확인합니다.

  24. 24

    어떻게 자바에서 문자열 배열에서 가장 긴 알파벳 단어를 인식하는? (기호 또는 번호없이 문자열)

  25. 25

    문자가 문자열에서 연속적인 방식으로 나타나는 횟수를 계산

  26. 26

    포인터를 사용하여 문자열 길이를 얻으려면 아래 코드에 어떤 문제가 있습니까?

  27. 27

    오류-추가 정보 : 초기화 문자열의 형식이 인덱스 0에서 시작하는 사양을 따르지 않습니다.

  28. 28

    Hive : 문자열의 하위 문자열에서 0이 아닌 문자 계산

  29. 29

    단어를 읽고 Python에서 길이별로 정렬 된 모든 하위 문자열을 인쇄합니다.

뜨겁다태그

보관