Як написати "вкладку" в Python?


127

Скажімо, я маю файл. Як написати "привіт" TAB "alex"?


6
вкладка передбачає "\ t"
Пратік

Відповіді:


154

Це код:

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

\tУсередині рядка є послідовність символів для горизонтальної табуляції.


5
Використання print "a\tb"дає мені a (8 spaces)bв положення cmdON Windows. Чому він друкує 8 пробілів замість символу вкладки.
Юліан Онофрей

Що ще ви очікували?
Симона

8
Для показуa (tab character)b
Юліан Онофрей

@IulianOnofrei Символ вкладки - це символ, що не друкується, також відомий як пробіл. Ви нічого не бачите при натисканні клавіші Tab. Він просто переміщує текст за типовою кількістю пробілів. Можливо, ви можете намалювати символами те, що ви хочете показати. Це ->?
Рік Хендерсон

4
@RickHenderson Це неправда, символ вкладки - це не просто кількість пробілів. Можливо, ваш редактор налаштований для вставки пробілів на натисканні вкладки. "" - вкладка "" - пробіл. Тут ви можете не бачити різниці, але відкрийте Word / Libre, і ви побачите різницю.
Сатива

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 

як надати символу табуляції для друку тривимірного елемента масиву як 0 12 24, як 3 рядки?
priya raj

Додано до відповіді
користувач1767754

0

Ось ще кілька екзотичних Python 3 способів отримати "привіт" TAB "alex" (тестований на 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"

Насправді, замість використання послідовності втечі, символ вкладки можна вставити прямо в літеральний рядок. Ось код з символом табуляції, який потрібно скопіювати та спробувати:

"hello alex"

Якщо вкладка в рядку вище нікуди не загубиться під час копіювання рядка, тоді "print (repr (<рядок зверху>)" має надрукувати "hello \ talex".

Див. Відповідну документацію Python для ознайомлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.