Bagaimana cara menulis "tab" dengan Python?

127

Katakanlah saya memiliki file. Bagaimana cara menulis "halo" TAB "alex"?

TIMEX
sumber
6
Tab menyiratkan '\ t'
Pratik

Jawaban:

154

Ini kodenya:

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

Bagian \tdalam string adalah escape sequence untuk tabulasi horizontal.

Simone
sumber
5
Menggunakan print "a\tb"memberi saya a (8 spaces)bdi cmdatas Windows. Mengapa mencetak 8 spasi, bukan karakter tab.
Iulian Onofrei
Apa lagi yang Anda harapkan?
Simone
8
Untuk menampilkana (tab character)b
Iulian Onofrei
@IulianOnofrei Karakter tab adalah karakter non-cetak, juga dikenal sebagai spasi. Anda tidak melihat apa pun saat menekan tombol Tab. Ini hanya memindahkan teks dengan jumlah spasi default. Mungkin Anda bisa menggambar karakter apa yang ingin Anda tampilkan. Apakah ->?
Rick Henderson
4
@RickHenderson Itu tidak benar, karakter tab bukan hanya jumlah spasi. Mungkin Editor Anda dikonfigurasi untuk menyisipkan spasi pada tab yang ditekan. "" adalah tab "" adalah spasi. Anda mungkin tidak melihat perbedaannya di sini, tetapi buka Word / Libre dan Anda akan melihat perbedaannya.
Sativa
27

Manual referensi Python mencakup beberapa literal string yang dapat digunakan dalam sebuah string. Urutan karakter khusus ini diganti dengan makna yang diinginkan dari urutan escape.

Berikut adalah tabel dari beberapa escape sequence yang lebih berguna dan deskripsi keluaran darinya.

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)

Contoh Dasar

Jika saya ingin mencetak beberapa titik data yang dipisahkan oleh ruang tab, saya dapat mencetak string ini.

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

Kembali

0    12    24

Contoh untuk Daftar

Berikut adalah contoh lain di mana kami mencetak item dari daftar dan kami ingin memisahkan item dengan TAB.

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

Kembali

0    12    24

String Mentah

Perhatikan bahwa string mentah (string yang menyertakan awalan "r"), literal string akan diabaikan. Ini memungkinkan rangkaian karakter khusus ini untuk dimasukkan ke dalam string tanpa diubah.

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

Kembali

0\t12\t24

Yang mungkin merupakan hasil yang tidak diinginkan

Panjang String

Perlu juga dicatat bahwa string literal hanya memiliki satu karakter.

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

Kembali

7

String mentah memiliki panjang 9.

CodeCupboard
sumber
Saya perlu memiliki jarak antara elemen saya yang sekitar setengahnya \t. Bagaimana saya bisa melakukan ini?
seralouk
25

Anda dapat menggunakan \ t dalam string literal:

"hello\talex"

Knio
sumber
14

Biasanya \tdalam antarmuka baris perintah, yang akan mengubah karakter \tmenjadi karakter tab spasi.

Misalnya, hello\talex-> hello--->alex.

Darbio
sumber
9

Karena tidak disebutkan dalam jawaban apa pun, jika Anda ingin meratakan dan memberi spasi pada teks Anda, Anda dapat menggunakan fitur format string. (di atas python 2.5) Tentu saja \tsebenarnya token TAB sedangkan metode yang dijelaskan menghasilkan spasi.

Contoh:

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

Contoh lain, rata kiri:

print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0        2.2        4.4 
pengguna1767754
sumber
bagaimana cara memberi karakter tab untuk mencetak elemen array 3 dimensi sebagai 0 12 24 sebagai 3 baris?
priya raj
Ditambahkan ke jawaban
pengguna1767754
0

Berikut adalah beberapa cara Python 3 yang lebih eksotis untuk mendapatkan "hello" TAB "alex" (diuji dengan Python 3.6.10):

"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"

Sebenarnya, alih-alih menggunakan escape sequence, dimungkinkan untuk menyisipkan simbol tab langsung ke dalam string literal. Berikut adalah kode dengan karakter tabulasi untuk disalin dan dicoba:

"hello alex"

Jika tab dalam string di atas tidak akan hilang di mana pun selama menyalin string maka "print (repr (<string from above>)" harus mencetak 'hello \ talex'.

Lihat dokumentasi Python masing-masing untuk referensi.

pengguna2273896
sumber