Python中有哪些外部执行指令

  

Python中有哪些外部执行指令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强> 1,os.system()

阻塞

屏幕会打印命令的输出

返回命令结果码

=utf - 8 - * - # - * -编码
  进口操作系统
  if __name__==& # 39; __main__ # 39;:
  通过
  打印(& # 39;开始& # 39;)
  ret1=os.system (& # 39; python # 39;)
  打印(& # 39;ret1: {} & # 39; .format (ret1))
  ret2=os.system (& # 39; java - version # 39;)
  打印(& # 39;ret2: {} & # 39; .format (ret2))
  打印(& # 39;结束& # 39;)

运行

 Python中有哪些外部执行指令

可能有人理解阻塞是因为运行了Python,因此我尝试两个命令都用java - version

=utf - 8 - * - # - * -编码
  
  进口操作系统
  
  if __name__==& # 39; __main__ # 39;:
  通过
  打印(& # 39;开始& # 39;)
  ret1=os.system (& # 39; java - version # 39;)
  打印(& # 39;ret1: {} & # 39; .format (ret1))
  ret2=os.system (& # 39; java - version # 39;)
  打印(& # 39;ret2: {} & # 39; .format (ret2))
  打印(& # 39;结束& # 39;)

运行

 Python中有哪些外部执行指令

2, os.popen ()

阻塞或不阻塞

屏幕不会打印出命令的输出

返回文件对象,可用阅读,readline读取

不阻塞时:

=utf - 8 - * - # - * -编码
  进口操作系统
  if __name__==& # 39; __main__ # 39;:
  通过
  打印(& # 39;开始& # 39;)
  os.popen (& # 39; python # 39;)
  ret2=os.popen (& # 39; java - version # 39;)
  打印(& # 39;结束& # 39;)

运行(程序很快打印开始和结束,就像只用了两个打印语句一样快)

 Python中有哪些外部执行指令

阻塞时:

=utf - 8 - * - # - * -编码
  进口操作系统
  if __name__==& # 39; __main__ # 39;:
  通过
  打印(& # 39;开始& # 39;)
  ret1=os.popen (& # 39; python # 39;)
  print (ret1.read ())
  ret2=os.popen (& # 39; java - version # 39;)
  print (ret2.read ())
  打印(& # 39;结束& # 39;)

运行

 Python中有哪些外部执行指令

3, commands.getstatusoutput

python2。+中使用

需要到linux运行

阻塞或者非阻塞

屏幕不会打印出命令的输出

非阻塞时

=utf - 8 - * - # - * -编码
  导入命令
  if __name__==& # 39; __main__ # 39;:
  通过
  打印(& # 39;开始& # 39;)
  ret1=commands.getstatusoutput (& # 39; python # 39;)
  ret2=commands.getstatusoutput (& # 39; java - version # 39;)
  打印(& # 39;结束& # 39;)

运行

 Python中有哪些外部执行指令

阻塞时:

=utf - 8 - * - # - * -编码
  导入命令
  if __name__==& # 39; __main__ # 39;:
  通过
  打印(& # 39;开始& # 39;)
  ret1=commands.getstatusoutput (& # 39; python # 39;)
  打印ret1 [0]
  打印ret1 [1]
  打印& # 39;==============& # 39;
  ret2=commands.getstatusoutput (& # 39; java - version # 39;)
  打印ret2 [0]
  打印ret2 [1]
  打印& # 39;==============& # 39;
  打印(& # 39;结束& # 39;)

运行

 Python中有哪些外部执行指令

4,子流程中Popen

阻塞或非阻塞,同上面一样,通过是否读取IO决定是否阻塞

屏幕会打印出命令的输出

可通过stdout, stderr参数指定输出或错误打印到文件

=utf - 8 - * - # - * -编码
  导入子流程
  if __name__==& # 39; __main__ # 39;:
  通过
  打印(& # 39;开始& # 39;)
  s1=subprocess.Popen (& # 39; python # 39;)
  s1.wait ()
  s2=subprocess.Popen (& # 39; java - version # 39;)
  s2.wait ()
  打印(& # 39;结束& # 39;)

运行

 Python中有哪些外部执行指令

4.1,输出到文件

通过文件对象来输出到文件中

Python中有哪些外部执行指令