답변:
다음은 코드입니다.
f = open(filename, 'w')
f.write("hello\talex")
\t
문자열 내부 수평 제표에 대한 이스케이프 시퀀스입니다.
print "a\tb"
나에게주는 a (8 spaces)b
에 cmd
에 Windows
. 탭 문자 대신 8 개의 공백을 인쇄하는 이유는 무엇입니까?
a (tab character)b
Python 참조 설명서 에는 문자열에서 사용할 수있는 여러 문자열 리터럴이 포함되어 있습니다. 이러한 특수 문자 시퀀스는 이스케이프 시퀀스의 의도 된 의미로 대체됩니다.
다음은 좀 더 유용한 이스케이프 시퀀스의 표와 출력에 대한 설명입니다.
Escape Sequence Meaning
\t Tab
\\ Inserts a back slash (\)
\' Inserts a single quote (')
\" Inserts a double quote (")
\n Inserts a ASCII Linefeed (a new line)
기본 예
탭 공간으로 구분 된 일부 데이터 포인트를 인쇄하려면이 문자열을 인쇄 할 수 있습니다.
DataString = "0\t12\t24"
print (DataString)
보고
0 12 24
목록의 예
다음은 목록의 항목을 인쇄하고 TAB으로 항목을 분할하려는 또 다른 예입니다.
DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))
보고
0 12 24
원시 문자열
원시 문자열 (접두사 "r"을 포함하는 문자열), 문자열 리터럴은 무시됩니다. 이렇게하면 이러한 특수 문자 시퀀스를 변경하지 않고 문자열에 포함 할 수 있습니다.
DataString = r"0\t12\t24"
print (DataString)
보고
0\t12\t24
바람직하지 않은 출력
문자열 길이
또한 문자열 리터럴은 길이가 한 문자 일 뿐이라는 점에 유의해야합니다.
DataString = "0\t12\t24"
print (len(DataString))
보고
7
원시 문자열의 길이는 9입니다.
\t
. 어떻게 할 수 있습니까?
어떤 답변에서도 언급되지 않았기 때문에 텍스트를 정렬하고 간격을 두려는 경우 문자열 형식 기능을 사용할 수 있습니다. (python 2.5 이상) 물론 \t
실제로는 TAB 토큰이지만 설명 된 방법은 공백을 생성합니다.
예:
print "{0:30} {1}".format("hi", "yes")
> hi yes
다른 예, 왼쪽 정렬 :
print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0 2.2 4.4
다음은 "hello"TAB "alex"(Python 3.6.10에서 테스트 됨)를 얻는 좀 더 이국적인 Python 3 방법입니다.
"hello\N{TAB}alex"
"hello\N{tab}alex"
"hello\N{TaB}alex"
"hello\N{HT}alex"
"hello\N{CHARACTER TABULATION}alex"
"hello\N{HORIZONTAL TABULATION}alex"
"hello\x09alex"
"hello\u0009alex"
"hello\U00000009alex"
실제로 이스케이프 시퀀스를 사용하는 대신 탭 기호를 문자열 리터럴에 직접 삽입 할 수 있습니다. 복사하여 시도 할 표 문자가있는 코드는 다음과 같습니다.
"hello alex"
위의 문자열의 탭이 문자열을 복사하는 동안 어디에도 손실되지 않으면 "print (repr (<string from above>)"는 'hello \ talex'를 출력해야합니다.
참조를 위해 각 Python 문서 를 참조하십시오.