我正在使用python 2.7.x我自动化我的东西,在那里我需要从我的python脚本运行到另一个python程序,因为我正在使用'os'库中的系统函数。
例如:
import os
os.system("python anotherscript.py --data <USER_INPUT_FROM_MY_SCRIPT_HERE>")
所以我知道是否有任何用户输入一些其他命令来代替预期的用户输入,这些命令将转换为os命令注入,这就是我想要防止的情况。
谢谢。
由于您需要从Python运行Python脚本,只需以Python方式导入它并正常调用所需的函数
import anotherscript
anotherscript.<function>("<user_input>")
@ Tenchi2xh的答案是更好的方法,但如果这不起作用(例如你的脚本只适用于Python 2.x而另一个只适用于Python 3.x)那么你应该使用subprocess
模块,传递作为列表的参数:
import subprocess
subprocess.call(['python', 'anotherscript.py', '--data', '<USER INPUT>'])
还可以看看subprocess.check_call
和subprocess.check_output
,看看它们是否更接近您的需求。
https://docs.python.org/2/library/subprocess.html#subprocess.call