我将数据从命令行传输到python。我想从字符串(命令行)转换为元组(python)。但我对\ charactor有疑问。
在命令行中,我使用:
C:\>python music.py -a variable="?=="
在python中:
#convert variable to array
variable_array = variable.split("==")
#convert to tuple
variable_tuple = tuple(variable_array)
我得到variable_tuple =(“?”,“”)
我需要的结果是variable_tuple =(“\?”,“”)
使用时
C:\>python music.py -a variable="\?=="
结果是variable_tuple =(“\\?”,“”)
如何从命令行传输数据到python中获取元组(“\?”,“”)?我需要反斜杠“?”
答案 0 :(得分:3)
'\\?'
是一个带有一个反斜杠字符和一个问号的字符串。
使用list
是将字符串拆分为字符的便捷技巧。例如:
In [34]: list('\\?')
Out[34]: ['\\', '?']
显示'\\?'
由2个字符组成,而不是3.如果您打印它:
In [35]: print('\\')
\
你看它只打印一个反斜杠字符。双反斜杠'\\'
是escape sequence。
另请注意,当您打印元组时,您将获得其内容的repr:
In [36]: print(tuple('\\?'))
('\\', '?')
'\?'
与Python中的'\\?'
完全相同。它们只是表示相同字符串的不同方式:
In [38]: list('\?')
Out[38]: ['\\', '?']
In [39]: list('\\?')
Out[39]: ['\\', '?']
In [42]: '\?' is '\\?'
Out[44]: True
答案 1 :(得分:0)
你得到了你想要的。你看到的只是'\'的字符串表示,第一个'\'作为转义字符。
答案 2 :(得分:0)
("\\?","")
表示“\”已转义,否则为“\?”将被解释为转义序列。
答案 3 :(得分:0)
?不需要反击。所以你得到的是正确和足够的。