Python 三引号多行字符串引发EOF错误
我正在尝试传递一个多行字符串。字符串是要在远程计算机上执行的一组命令 我知道我可以在子流程模块中使用ssh执行命令,但由于需求限制,我必须将其作为字符串传递Python 三引号多行字符串引发EOF错误,python,python-2.7,string-literals,Python,Python 2.7,String Literals,我正在尝试传递一个多行字符串。字符串是要在远程计算机上执行的一组命令 我知道我可以在子流程模块中使用ssh执行命令,但由于需求限制,我必须将其作为字符串传递 some_variable=“python-c\”exec(''import subprocess\nsubprocess.Popen(\'{}'))\''。格式(文件路径) 在远程上执行命令(某些变量) 我得到以下错误: u' File "<string>", line 1 exec(\'\'\'import su
some_variable=“python-c\”exec(''import subprocess\nsubprocess.Popen(\'{}'))\''。格式(文件路径)
在远程上执行命令(某些变量)
我得到以下错误:
u' File "<string>", line 1
exec(\'\'\'import subprocess
^
SyntaxError: EOF while scanning triple-quoted string literal
u'文件“”,第1行
exec(\'\'\'导入子流程
^
SyntaxError:扫描三重引号字符串文字时出现EOF
试着用'{}'
替换\“{}\”
试着用'{}'
替换\“{}\”
让我们看看这会变成什么:
"python -c \"exec('''import subprocess\nsubprocess.Popen(\"{}\")''')\""
Python在内部删除一个转义层:
python -c "exec('''import subprocess
subprocess.Popen("<file_path>")'''"
这显示了异常的来源。若要修复,只需在换行符中添加更多的转义层:
"python -c \"exec('''import subprocess\\nsubprocess.Popen(\"{}\")''')\""
让我们看看这会变成什么:
"python -c \"exec('''import subprocess\nsubprocess.Popen(\"{}\")''')\""
Python在内部删除一个转义层:
python -c "exec('''import subprocess
subprocess.Popen("<file_path>")'''"
这显示了异常的来源。若要修复,只需在换行符中添加更多的转义层:
"python -c \"exec('''import subprocess\\nsubprocess.Popen(\"{}\")''')\""
每次,当变量中有斜杠时,我都会遇到这种错误。 让我们看看,您的变量存储了什么 一些变量=“python-c\”执行(“””导入 子进程\nsubprocess.Popen(\“{}\”)\“”。格式(文件路径) 这将存储: python-c“exec(“”)导入子流程 及 subprocess.Popen(“”“”) 用两种不同的方式 由于变量中的行发生了变化,python正在创建一个异常 我使用的解决方案之一是使用双斜杠:
"python -c \"exec('''import subprocess\\nsubprocess.Popen(\"{}\")''')\""
这将解决换行的问题,但有时会令人困惑,因为变量字符串中有许多斜杠必须存储
第二种解决方案是使用Python原始字符串:
Python原始字符串是通过在字符串文本前面加上“r”或“r”来创建的。Python原始字符串将反斜杠视为文本字符
因此,与计算斜杠并将其转换为双斜杠不同,您需要做的是:
some_variable = r"python -c \"exec('''import subprocess\nsubprocess.Popen(\"{}\")''')\"".format(filepath)
这将存储变量中的字符串:
python -c \"exec('''import subprocess\nsubprocess.Popen(\"ATS 2.pdf\")''')\"
每次,当变量中有斜杠时,我都会遇到这种错误。 让我们看看,您的变量存储了什么 一些变量=“python-c\”执行(“””导入 子进程\nsubprocess.Popen(\“{}\”)\“”。格式(文件路径) 这将存储: python-c“exec(“”)导入子流程 及 subprocess.Popen(“”“”) 用两种不同的方式 由于变量中的行发生了变化,python正在创建一个异常 我使用的解决方案之一是使用双斜杠:
"python -c \"exec('''import subprocess\\nsubprocess.Popen(\"{}\")''')\""
这将解决换行的问题,但有时会令人困惑,因为变量字符串中有许多斜杠必须存储
第二种解决方案是使用Python原始字符串:
Python原始字符串是通过在字符串文本前面加上“r”或“r”来创建的。Python原始字符串将反斜杠视为文本字符
因此,与计算斜杠并将其转换为双斜杠不同,您需要做的是:
some_variable = r"python -c \"exec('''import subprocess\nsubprocess.Popen(\"{}\")''')\"".format(filepath)
这将存储变量中的字符串:
python -c \"exec('''import subprocess\nsubprocess.Popen(\"ATS 2.pdf\")''')\"