沙滩星空的博客沙滩星空的博客

python os.system()和os.popen()的区别

os.system()

>>> help(os.system)
Help on built-in function system in module nt:

 
system(command)
  Execute the command in a subshell.

os.system()是在当前进程中打开一个子shell(子进程)来执行系统命令。
这个方法只返回状态码,执行结果会输出到 stdout,也就是输出到终端

os.popen()

>>> help(os.popen)
Help on function popen in module os:

popen(cmd, mode='r', buffering=-1)
  # Supply os.popen()

区别

os.system(cmd)的返回值只会有0(成功),1,2

os.popen(cmd)会把执行的cmd的输出作为值返回。

示例:

打开一个监听端口,阻塞执行。
os.system 将直接回显命令的执行状态,直接终端实时显示,进程被阻塞。
os.popen 则python脚本执行完毕后,直接退出。阻塞运行的进程直接在系统后台运行

os.system("locust -f locustfile.py --host=https://www.baidu.com")

os.popen("locust -f locustfile.py --host=https://www.baidu.com")

Python调用系统命令os.system()和os.popen()的实现 https://www.jb51.net/article/203291.htm

未经允许不得转载:沙滩星空的博客 » python os.system()和os.popen()的区别

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址