这段简单的代码如下:
s = "it's a nice day..."
s = shlex.split(s)
将导致ValueError: No closing quotation
错误:
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
s = shlex.split(s)
File "C:\Python\Python35-32\lib\shlex.py", line 273, in split
return list(lex)
File "C:\Python\Python35-32\lib\shlex.py", line 263, in __next__
token = self.get_token()
File "C:\Python\Python35-32\lib\shlex.py", line 90, in get_token
raw = self.read_token()
File "C:\Python\Python35-32\lib\shlex.py", line 166, in read_token
raise ValueError("No closing quotation")
ValueError: No closing quotation
我认为是'
出了问题。我该怎么处理呢?我是从文件中读取这一行的,所以我不能在每个引号或其他东西之前输入\
。
发布于 2019-08-14 03:12:44
应该被解析为外壳输入的字符串( shlex就是这样)不能有未转义的'
字符。您需要在输入中添加转义字符
x = shlex.split("it\\'s a nice day...")
print(x)
提供:
["it's", 'a', 'nice', 'day...']
您可以通过在输入中执行replace
来添加额外的\\
:
s = s.replace("'", "\\'")
https://stackoverflow.com/questions/57483794
复制相似问题