下面的Python脚本名为test.py
。目标是让Python识别tab。我该怎么做?在
import sys
input = sys.argv[1]
if __name__ == "__main__":
print input == "\t"
当我将python test.py "\t"
传递到命令行时,为什么要得到一个False
?在
[更新]
我根据下面的前两条注释修改了代码:
^{pr2}$当我通过python test.py '\t'
时,我得到
\t
False
[更新2]
不幸的是,我使用的是Windows命令提示符,而不是*nix系统。在
[快速和肮脏的解决方案]
当"\t"
在命令行中作为参数传递时,我可以尝试将其检测为"\\t"
,并在Python中将其手动分配给tab。例如
import sys
someArgs = sys.argv[1]
if __name__ == "__main__":
if someArgs == "\\t":
pythonTab = "\t"
print pythonTab
从命令行,python test.py "\t"
将生成一个制表符作为输出。有人有更优雅的解决方案吗?在
如果确保始终引用参数“\t”,则可以使用:
你有两个问题。在
首先,
\t
只在Python脚本中起作用-您需要在命令行中使用文本制表符。在第二个是how to enter a literal tab on the command line
输入
command $'\t'
所以试试这个:
对于命令行:
^{2}$反斜杠在Python和命令行中都有特殊的含义。在
是否要检测单个制表符?那么您就正确地比较了:
input == "\t"
是正确的。但在命令行中传递制表符取决于系统。我不知道怎么在窗户上做。在带有Bash的Unix上,命令行应该如下所示:或者
^{2}$请参阅有关Bash中
$'
语法的更多信息:http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting是否要检测两个字符:反斜杠和t?然后您应该将其比较为:}。我不知道如何在Windows的命令行中传递反斜杠。在带有Bash的Unix上,命令行应该如下所示:
input == "\\t"
或{请参阅有关Bash中
'
语法的更多信息:http://www.gnu.org/software/bash/manual/bashref.html#Single-Quotes我建议将以下调试信息生成添加到程序中:
相关问题 更多 >
编程相关推荐