python和壳牌的结合与应用

  

函数模块

  
系统()
  
      <李>其中最后一个0是这个命令的返回值,为0表示命令执行成功。使用系统无法将执行的结果保存起来。
    例子:   ,
     <代码>祝辞的在比;进口操作系统
      在在在os.system (ls)
      博客。焦油djangoblog。日志managerblog。sh用法
      数据ENV nginx-1.15.11 wget-log
      0  
      
    popen ()
      

    提示:python3已结废弃
    例子:

      ,
     <代码>祝辞的在比;进口操作系统
      在在在os.popen (ls)
      & lt;操作系统。在0 x7f0acd548b00> _wrap_close对象;
      在在在os.popen (ls) .read ()
      “blog.tar \ ndata \ ndb.sql \ ndead.letter \ nDjangoBlog \ ndjangoblog.log \ nENV \ nfile1 \ nget-pip.py \ nindex.html \ nmanagerblog.sh \ nnginx-1.15.11 \ nPython-3.5.2 \ nstartDjangoBlog.sh \ nstart_uwsgi.ini \ ntest.txt \ nwget-log \ nzrlog-2.1.3-b5f0d63-release.war ? attname=ROOT.war \ n '
      在在在os.popen (ls) .read () .split (“\ n”)
      ['博客。沥青”、“数据”、“db。sql”、“死了。信”、“DjangoBlog”、“DjangoBlog。日志”、“ENV”、“file1”、“get-pip。py”、“指数。html”、“managerblog。sh”、“nginx-1.15.11”、“Python-3.5.2”、“startDjangoBlog。sh”、“start_uwsgi。ini”、“测试。txt”、“wget-log”、“zrlog-2.1.3-b5f0d63-release.war ? attname=根。战争’,”) 
      

    获取命令执行的结果,但是没有命令的执行状态,这样可以将获取的结果保存起来放到列表中。

      
  
子流程
  
      <李>可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位。   <李> commands.getoutput (ls)这个方法只返回执行结果结果不返回状态。
    提示:子流程模块已经取代了命令
    例子:
    <强> 1,getstatusoutput   ,
     <代码>祝辞的在比;导入子流程
      在在在状态,结果=subprocess.getstatusoutput (ls)
      在在在状态
      0
      在在在结果
      “blog.tar \ ndata \ ndb.sql \ ndead.letter \ nDjangoBlog \ ndjangoblog.log \ nENV \ nfile1 \ nget-pip.py \ nindex.html \ nmanagerblog.sh \ nnginx-1.15.11 \ nPython-3.5.2 \ nstartDjangoBlog.sh \ nstart_uwsgi.ini \ ntest.txt \ nwget-log \ nzrlog-2.1.3-b5f0d63-release.war ? attname=ROOT.war '
      在在在result.split (“\ n”)
      ['博客。沥青”、“数据”、“db。sql”、“死了。信”、“DjangoBlog”、“DjangoBlog。日志”、“ENV”、“file1”、“get-pip。py”、“指数。html”、“managerblog。sh”、“nginx-1.15.11”、“Python-3.5.2”、“startDjangoBlog。sh”、“start_uwsgi。ini”、“测试。txt”、“wget-log”、“zrlog-2.1.3-b5f0d63-release.war ? attname=ROOT.war ']  
      

    <强> 2,getoutput

      ,
     <代码>祝辞的在比;打印(subprocess.getoutput (ls) .split (' \ n '))
      ['博客。沥青”、“数据”、“db。sql”、“死了。信”、“DjangoBlog”、“DjangoBlog。日志”、“ENV”、“file1”、“get-pip。py”、“指数。html”、“managerblog。sh”、“nginx-1.15.11”、“Python-3.5.2”、“startDjangoBlog。sh”、“start_uwsgi。ini”、“测试。txt”、“wget-log”、“zrlog-2.1.3-b5f0d63-release.war ? attname=ROOT.war ']  
      

    <强> 3,叫
    执行命令,返回状态码(命令正常执行返回0,报错则返回1)

      ,
     <代码>祝辞的在比;subprocess.call (ls)
      博客。焦油djangoblog。日志managerblog。sh用法
      数据ENV nginx-1.15.11 wget-log
      db。sql file1 Python-3.5.2 zrlog-2.1.3-b5f0d63-release.war ? attname=ROOT.war
      死了。get-pip信。py startDjangoBlog.sh
      DjangoBlog指数。html start_uwsgi.ini
      0  
      
  

<强> 4,check_call
执行命令,如果执行成功则返回状态码0,否则抛异常

  ,
 <代码>祝辞的在比;subprocess.check_call (ls)
  博客。焦油djangoblog。日志managerblog。sh用法
  数据ENV nginx-1.15.11 wget-log
  db。sql file1 Python-3.5.2 zrlog-2.1.3-b5f0d63-release.war ? attname=ROOT.war
  死了。get-pip信。py startDjangoBlog.sh
  DjangoBlog指数。html start_uwsgi.ini
  0
  在在在子流程。check_call (ls luojun)
  回溯(最近的电话):
  文件“& lt; stdin>”,1号线& lt; module>
  文件“/usr/地方/python3/lib/python3.5/子流程。在check_call py”, 576行
  retcode=电话(* popenargs, * * kwargs)
  文件“/usr/地方/python3/lib/python3.5/子流程。py”, 557行,在调用
  Popen (* popenargs, * * kwargs) p:
  文件“/usr/地方/python3/lib/python3.5/子流程。__init__ py”, 947行
  restore_signals start_new_session)
  文件“/usr/地方/python3/lib/python3.5/子流程。在_execute_child py”, 1551行
  提高child_exception_type (errno_num err_msg)
  FileNotFoundError (Errno 2):没有这样的文件或目录:“ls luojun”

python和壳牌的结合与应用