首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python选项卡"\t“作为参数

Python选项卡"\t“作为参数
EN

Stack Overflow用户
提问于 2014-05-22 22:14:38
回答 3查看 4K关注 0票数 2

下面的Python脚本名为test.py。目标是让Python识别选项卡。我该怎么做?

代码语言:javascript
复制
import sys
input = sys.argv[1]
if __name__ == "__main__":
    print input == "\t"

当我将python test.py "\t"传递给命令行时,为什么要得到一个False

更新

我根据下面的前两条注释更改了代码:

代码语言:javascript
复制
import sys
someArgs = sys.argv[1]
if __name__ == "__main__":
    print someArgs
    print someArgs == '\t'

当我通过python test.py '\t'时,我得到

代码语言:javascript
复制
\t
False

更新2

不幸的是,我使用的是Windows命令提示符,而不是*nix系统。

快速肮脏解决方案

"\t"作为参数在命令行中传递时,我可以尝试将其检测为"\\t",并将其手动分配给Python。例如,

代码语言:javascript
复制
import sys
someArgs = sys.argv[1]
if __name__ == "__main__":
    if someArgs == "\\t":
        pythonTab = "\t"
        print pythonTab

在命令行中,python test.py "\t"将生成一个选项卡作为输出。有谁有更优雅的解决方案吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-22 22:23:01

反斜杠在Python和命令行中都有特殊的含义。

要检测单个制表符吗?那么,您正在正确地比较它:input == "\t"是正确的。但是系统依赖于在命令行中传递一个制表符。我不知道在Windows上该怎么做。在使用Bash的Unix上,命令行应该如下所示:

代码语言:javascript
复制
python test.py $'\t'

代码语言:javascript
复制
python test.py $'\011'

请参阅有关$'语法的更多信息,此处为:002dC-Quoting

是否要检测两个字符:反斜杠和t?然后,您应该将其比较为:input == "\\t"input == r"\t"。我不知道如何在Windows命令行中传递反斜杠。在使用Bash的Unix上,命令行应该如下所示:

代码语言:javascript
复制
python test.py '\t'

请参阅有关'语法的更多信息,此处为:http://www.gnu.org/software/bash/manual/bashref.html#Single-Quotes

我建议将以下调试信息生成添加到程序中:

代码语言:javascript
复制
print repr(argv[1])
print argv[1].encode('hex')
票数 4
EN

Stack Overflow用户

发布于 2014-05-22 22:31:36

你这里有两个问题。

首先,\t只在Python中起作用--您需要命令行中的文字制表符。

第二个是how to enter a literal tab on the command line

输入command $'\t'

所以试试这个:

代码语言:javascript
复制
#!/usr/bin/python

import sys
in_part = sys.argv[1]
if __name__ == "__main__":
    print 'cmd[1]={}'.format(in_part)
    print in_part == "\t"

对于命令行:

代码语言:javascript
复制
tab.py $'\t'
票数 1
EN

Stack Overflow用户

发布于 2016-06-15 18:27:17

如果您确保始终引用您的论点"\t",您可以使用:

代码语言:javascript
复制
ast.literal_eval(in_part)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23817939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档