How do I write a "tab" in Python?

613,453

Solution 1

This is the code:

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

The \t inside the string is the escape sequence for the horizontal tabulation.

Solution 2

The Python reference manual includes several string literals that can be used in a string. These special sequences of characters are replaced by the intended meaning of the escape sequence.

Here is a table of some of the more useful escape sequences and a description of the output from them.

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)

Basic Example

If i wanted to print some data points separated by a tab space I could print this string.

DataString = "0\t12\t24"
print (DataString)

Returns

0    12    24

Example for Lists

Here is another example where we are printing the items of list and we want to sperate the items by a TAB.

DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))

Returns

0    12    24

Raw Strings

Note that raw strings (a string which include a prefix "r"), string literals will be ignored. This allows these special sequences of characters to be included in strings without being changed.

DataString = r"0\t12\t24"
print (DataString)

Returns

0\t12\t24

Which maybe an undesired output

String Lengths

It should also be noted that string literals are only one character in length.

DataString = "0\t12\t24"
print (len(DataString))

Returns

7

The raw string has a length of 9.

Solution 3

You can use \t in a string literal:

"hello\talex"

Solution 4

It's usually \t in command-line interfaces, which will convert the char \t into the whitespace tab character.

For example, hello\talex -> hello--->alex.

Solution 5

As it wasn't mentioned in any answers, just in case you want to align and space your text, you can use the string format features. (above python 2.5) Of course \t is actually a TAB token whereas the described method generates spaces.

Example:

print "{0:30} {1}".format("hi", "yes")
> hi                             yes

Another Example, left aligned:

print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0        2.2        4.4 
Share:
613,453

Related videos on Youtube

TIMEX
Author by

TIMEX

Updated on February 23, 2021

Comments

  • TIMEX
    TIMEX over 2 years

    Let's say I have a file. How do I write "hello" TAB "alex"?

    • Pratik
      Pratik almost 13 years
      tab implies '\t'
    • carloswm85
      carloswm85 over 2 years
      The title for this question is vague.
  • Iulian Onofrei
    Iulian Onofrei over 8 years
    Using print "a\tb" gives me a (8 spaces)b in the cmd on Windows. Why is it printing 8 spaces instead of the tab character.
  • Simone
    Simone over 8 years
    What else were you expecting?
  • Iulian Onofrei
    Iulian Onofrei over 8 years
    To display a (tab character)b
  • Rick Henderson
    Rick Henderson over 7 years
    @IulianOnofrei A tab character is a non-printing character, also known as whitespace. You don't see anything when press the Tab key. It just moves the text over by a default number of spaces. Maybe you can draw in characters what you want to appear. Is it --> ?
  • priya raj
    priya raj almost 6 years
    how to give tab character to print 3 dimensional array element as 0 12 24 as 3 rows?
  • user1767754
    user1767754 almost 6 years
    Added to the answer
  • Sativa
    Sativa over 5 years
    @RickHenderson That's not true, a tab character is not just a number of spaces. Maybe your Editor is configured to insert spaces on pressing tab. " " is a tab " " is a space. You may not see the difference here, but open up Word/Libre and you will see the difference.
  • Rick Henderson
    Rick Henderson over 5 years
    @Sativa I'm well aware of that thanks. A more correct statement would be the tab moves the text over by a set distance.
  • seralouk
    seralouk over 3 years
    I need to have a space between my elements that is around half of \t. How can I do this?
  • Foo Bar
    Foo Bar over 3 years
    @RickHenderson that isn't true either. A tab should put the next character at the next tab stop, whose distance is variable based on the tab spacing and how long the preceding string is.
  • Foo Bar
    Foo Bar over 3 years
    @IulianOnofrei that might be an implementation issue in cmd itself. Monospace consoles may handle text display differently than a text editor would, and auto-convert tabs into spaces on screen.
  • User1010
    User1010 almost 3 years
    Should this not be \t as you mention in step 2?
  • William Zeng
    William Zeng over 2 years
    @User1010 \t does mean a tab. I am using escape characters
  • User1010
    User1010 over 2 years
    I am familiar with escape chars however you have written hello/t not hello\t
  • William Zeng
    William Zeng over 2 years
    @User1010 I made the accident on the file.write("hello\talex"). Now I fixed it.