파이썬에서 "탭"을 어떻게 작성합니까?


127

파일이 있다고 가정 해 봅시다. "hello"TAB "alex"를 어떻게 작성합니까?


6
탭은 '\ t'를 의미합니다.
Pratik

답변:


154

다음은 코드입니다.

f = open(filename, 'w')
f.write("hello\talex")

\t문자열 내부 수평 제표에 대한 이스케이프 시퀀스입니다.


5
사용하는 것은 print "a\tb"나에게주는 a (8 spaces)bcmdWindows. 탭 문자 대신 8 개의 공백을 인쇄하는 이유는 무엇입니까?
이 울리 Onofrei

또 무엇을 기대하고 있었습니까?
Simone

8
표시하려면a (tab character)b
울리 Onofrei에게

@IulianOnofrei 탭 문자는 공백이라고도하는 인쇄되지 않는 문자입니다. Tab 키를 눌러도 아무것도 표시되지 않습니다. 기본 공백 수만큼 텍스트를 이동합니다. 나타나고 싶은 것을 캐릭터로 그릴 수 있습니다. ->입니까?
Rick Henderson

4
@RickHenderson 사실이 아닙니다. 탭 문자는 단순한 공백이 아닙니다. 탭을 누를 때 공백을 삽입하도록 편집기가 구성되어있을 수 있습니다. ""은 탭 ""은 공백입니다. 여기서 차이점을 보지 못할 수도 있지만 Word / Libre를 열면 차이점을 볼 수 있습니다.
Sativa

27

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. 어떻게 할 수 있습니까?
seralouk

25

문자열 리터럴에서 \ t를 사용할 수 있습니다.

"hello\talex"


14

일반적으로 \t문자 \t를 공백 탭 문자로 변환하는 명령 줄 인터페이스에 있습니다.

예 : hello\talex-> hello--->alex.


9

어떤 답변에서도 언급되지 않았기 때문에 텍스트를 정렬하고 간격을 두려는 경우 문자열 형식 기능을 사용할 수 있습니다. (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 

3 차원 배열 요소를 0 12 24로 3 행으로 인쇄하기 위해 탭 문자를 제공하는 방법은 무엇입니까?
priya raj

답변에 추가됨
user1767754 dec.

0

다음은 "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 문서 를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.