Skip to main content
 首页 » 编程设计

python之如何将转义字符串传递给 Python 中的 shell 脚本

2025年05月04日27linjiqin

我正在尝试创建一个 Python 脚本,该脚本依次运行 shell 脚本“js2coffee”以将一些 javascript 转换为 coffeescript。

我可以从命令行运行它,然后再次获取 coffeescript...

echo "var myNumber = 100;"| js2咖啡

我需要做的是使用来自 Python 的相同模式。

在 Python 中,我遇到了这样的事情:

command = "echo '" + myJavscript + "' | js2coffee" 
result = os.popen(command).read() 

这有时有效,但存在与特殊字符(我认为主要是引号)相关的问题,未在 myJavascript 中正确转义。必须有一个标准的方法来做到这一点。有任何想法吗?谢谢!

请您参考如下方法:

使用进程的输入流为其提供数据,这样您就可以避免 shell,也不需要转义您的 javascript。此外,您不易受到 shell injection 的攻击攻击;

pr = subprocess.Popen(['js2coffee'],  
                      stdin=subprocess.PIPE,   
                      stdout=subprocess.PIPE) 
result, stderrdata = pr.communicate('var myNumber = 100;')