Все, что использует оболочку для выполнения команд, небезопасно по очевидным причинам (вы не хотите, чтобы кто-то запускал rm -rf /
в вашей оболочке :). И os.system
, и os.popen
используют оболочку.
В целях безопасности используйте модуль subprocess
с shell = False
В любом случае, обе эти функции устарели с Python 2.6