os.system只能反馈执行是否成功的标志位,想要获取错误信息,只能使用重定向其输出结果到文件中。

os.popen方式:

返回值:cmd的输出信息。本身是异步调用,返回为一个Io文件指针,读取IO才会导致同步阻塞

import os
f = os.popen(cmd)
print(f.read())

如果正确输出可以看到信息。但是有两个问题:

1.正确的输出信息不是同步反馈的

2.如果调用该命令出错,返回信息为空,并不返回错误信息。

os.system方式

返回值:0(成功),1,2

为同步调用,直到命令执行结束才会返回是否成功标志,并不能反馈信息。

1.这里并不能像如下使用,只能显示Python自身抛出的异常

with open("output.txt","w") as file:
    out = sys.stderr
    sys.stderr = file
    -- * --
    sys.stderr = out    

2.使用这种window命令的方式,初步解决这个问题

ret = os.system("cmd" + " 2>out.txt")
if ret == 0:
    print("success")
else:
    with open("output.txt","r") as file:
    print(file.read())
结论:os.system只能反馈执行是否成功的标志位,想要获取错误信息,只能使用重定向其输出结果到文件中。 os.popen方式:返回值:cmd的输出信息。本身是异步调用,返回为一个Io文件指针,读取IO才会导致同步阻塞import osf = os.popen(cmd)print(f.read())如果正确输出可以看到信息。但是有两个问题:1.正确的输出信息不是同步... 最近在使用 python 执行启动 appium 服务器 命令 时,发现 os .system()、 os .popen() 均不能完美的启动服务,最后查了好多资料,使用 subprocess.run() 方法解决了问题,下面将对这三种方法一一对比: os .system() os .system方法是 os 模块最基础的方法,其它的方法一般在该方法基础上封装完成。 os .system()的 返回值 ...
以下是Linux中 返回值 对照表 " OS error code   1:  Operation not permitted" " OS error code   2:  No such file or directory" " OS error code   3:  No such process" " OS error code   4:  Interrupted system call" " OS error code 1: Operation not permitted" " OS error code 2: No such file or directory" " OS error code 3: No such process" " OS error co...
补充一句:如果第三方程序 返回 的是布尔型 返回值 os .system会将true转为1,false转为0进行 返回 。 下面是转发: 记得老早的时候 python .cn邮件列表上有朋友问过 os .system()的 返回值 异常的问题。今天又碰到啦,所以总结下。 /bin/xxx.py是一个 返回 码为1的程序。 当 python 程序使用 os .system(”./bin/xxx.py”) 这样 调用
import os rootDir = u'E:\\AIRCAS\\B科研论文专利\\4投稿\\数据处理' os .system( os .path.join(rootDir,'1smoothingdata.py')) os .system( os .path.join(rootDir,'2normalization.py')) os .system(o
使用 os .system(cmd)即可在 python 中使用linux 命令 。示例:在aa文件夹下创建了bb,cc两个文件夹,并且用ls展示出来。#coding = utf-8 import os path = '/root/Download/dir/' pathb = '{}{}'.format(path,'bb') pathc = '{}{}'.format(path,'cc') if not o...
os .system() 是 Python 中的一个内置函数,用于在 Python 脚本中执行系统 命令 。它接收一个字符串参数,表示要执行的 命令 ,并 返回 执行结果的状态码。 ``` python import os result = os .system("ls") print(result) 这段代码会执行系统 命令 "ls",并将执行结果的状态码赋值给变量 "result"。 注意, os .system() 函数不会 返回 命令 的输出结果,如果需要获取输出结果,应使用其他函数,比如 subprocess.run()。