Python 三引号多行字符串引发EOF错误

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

我正在尝试传递一个多行字符串。字符串是要在远程计算机上执行的一组命令

我知道我可以在子流程模块中使用ssh执行命令,但由于需求限制,我必须将其作为字符串传递

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\")''')\"