如何在Python中编写“标签”?


127

假设我有一个文件。如何写“你好” TAB“ alex”?


6
标签意味着'\ T'
PRATIK

Answers:


154

这是代码:

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

\t字符串的内部是水平制表符的转义序列。


5
使用print "a\tb"给了我a (8 spaces)bcmdWindows。为什么打印8个空格而不是制表符。
Iulian Onofrei 2015年

您还期待什么?
西蒙妮

8
显示a (tab character)b
尤利安奥诺弗雷2015年

@IulianOnofrei制表符是非打印字符,也称为空格。按Tab键时看不到任何内容。它只是将文本移动默认数量的空格。也许您可以画出想要显示的字符。是->吗?
瑞克·亨德森

4
@RickHenderson事实并非如此,制表符不仅是空格。也许您的编辑器配置为在按Tab键上插入空格。“”是标签“”是空格。您可能没有在这里看到差异,但是打开Word / Libre,您将看到差异。
苜蓿'18

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在命令行界面中,它将把char \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

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(<上方字符串>)”应打印'hello \ talex'。

请参阅相应的Python文档以获取参考。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.