首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

读取os.popen()输出不返回任何内容

读取os.popen()输出不返回任何内容可能是由于以下原因:

  1. 命令执行错误:os.popen()函数用于执行系统命令并返回输出结果。如果命令执行错误或者没有输出结果,那么os.popen()函数将不会返回任何内容。可以通过检查命令是否正确、参数是否正确以及是否有足够的权限来解决此问题。
  2. 输出被重定向:有些命令在执行时会将输出重定向到其他地方,例如文件或者其他设备。这种情况下,os.popen()函数可能无法获取到输出结果。可以尝试使用其他方法来捕获输出,例如使用subprocess模块的subprocess.run()函数。
  3. 命令没有输出:有些命令执行后可能没有任何输出结果。这可能是因为命令执行成功但没有产生任何输出,或者是因为命令执行失败但没有返回错误信息。可以通过手动在命令行中执行命令来验证是否有输出。
  4. 系统限制:某些系统可能对于执行某些命令或者读取输出有限制。这可能是由于安全策略或者其他原因。可以尝试使用其他命令或者在其他环境中执行命令来解决此问题。

总结起来,如果读取os.popen()输出不返回任何内容,可以先检查命令是否正确执行,参数是否正确,是否有足够的权限。如果命令执行正确但仍然没有输出,可以尝试使用其他方法来捕获输出。如果仍然无法解决问题,可能是由于系统限制导致无法获取输出。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Python os.popen() 方法

    前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容 假定有一个shell脚本test.sh: song@ubuntu:~$ vi test.sh #!...>>> n 256 >>> n>>8 1 >>> os.popen(command):这种调用方式是通过管道的方式来实现,函数返回一个file对象,里面的内容是脚本输出内容(可简单理解为echo输出内容...os.popen执行了ping 127.0.0.1 -t 该命令会一直执行,除非CTRL+C强制退出,因而,执行readlines读取命令输出时会造成卡住。...代码实例2: 使用os.popen执行sqlplus命令对数据库进行操作的场景,如果sqlplus执行失败,会进入交互模式,如图所示,此时使用readlines()读取执行结果时也会卡死,效果如上图:...在需要读取命令执行结果时,避免在命令无法退出或进入交互模式的场景应用os.popen; 2.os.popen()无法满足需求时,可以考虑subprocess.Popen();

    14.5K21

    自带的 print 函数居然会报错?

    直到这个问题反复出现我才认真看了这个异常,定睛一看 print 也是 IO 操作嘛,难道真的是自带的 print 函数都出问题了?...根据官方文档的解释,该函数会执行 fork 一个子进程执行 command 这个命令,同时将子进程的标准输出通过管道连接到父进程; 也就该方法返回的文件描述符。...这里画个图能更好地理解其中的原理: 在这里的使用场景中并没有获取 popen() 的返回值,所以 command 的执行本质上是异步的; 也就是说当 task.py 执行完毕后会自动关闭读取端的管道。...如图所示,关闭之后子进程会向 pipe 中输出 print '1000'*1024,由于这里输出内容较多会一下子填满管道的缓冲区; 于是写入端会收到 SIGPIPE 信号,从而导致 Broken pipe...父进程: 子进程: 可以看到子进程的标准输出与父进程关联,也就是 popen() 所返回的那个文件描述符。

    69810

    Python调用Shell命令

    ****通过os模块**** system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果 #os-One #只返回结果 os.system(command) sample import os...print os.system("service apache2 status") ---- popen方不仅仅返回结果,还返回一个类文件对象,通过调用该对象的read()或readlines()方法可以读取输出内容...#os-Two #返回结果与终端显示信息 os.popen(command,mode) sample import os output = os.popen('service apache2 status...,而本方法将外部程序的输出结果当作字符串返回 #返回(status, output) commands.getstatusoutput(command) #只返回输出结果 commands.getoutput...(command) #调用了getoutput,建议使用此方法 commands.getstatus(file) sample import commonds print

    1.3K50

    python与s

    返回执行命令的输入流 或输出流文件对象。...运行参数中指定的命令,但是阻塞父进程 f.read()# 执行读取操作时,将阻塞父进程 #使用写管道 #需要提前写好echo文件 ''' #echo.py while True: in = input...(如果命令返回码为0,返回运行结果;否则,直接抛出CalledProcessError异常) 阻塞父进程 不支持stdout的管道 指定参数:stderr = STDOUT 可捕获错误信息 支持参数:...input getoutput(cmd) 功能: 获取子进程中执行命令的输出结果 返回值:执行命令的结果 阻塞父进程 不支持管道 命令执行错误时,不引发异常 getstatusoutput(cmd...) 功能:获取子进程中执行命令的返回码和结果 返回值:(retcode, stdout)元组 阻塞父进程 不支持管道 命令执行错误时,不引发异常 run(args, *, stdin = None

    92610

    笔记 | 如何在Python下调用Linux的Shell命令?

    返回值为256~ >>> 注意:上面说了,此方法只返回外部程序的结果,也就是os.system的结果,所以如果你想接收命令的返回值,接着向下看~ 1.3. os模块的popen方法 当需要得到外部程序的输出结果时...os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等 如a=os.popen(cmd).read() >>> os.popen('ls -lt')...Haha,there is the log 2. commands模块 使用commands模块的getoutput方法,这种方法同popend的区别在于popen返回的是一个文件句柄,而本方法将外部程序的输出结果当作字符串返回...只返回输出结果 * commands.getstatus(file) 返回ls -ld file的执行结果字符串,调用了getoutput,建议使用此方法...假如你通过一个字符串传递所有东西,你的命令会传递给shell;如果你通过一个列表传递他们,你不用担心逃避任何事。 4.3.

    4.6K20

    pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)

    经过研究,上结论: os.popen 会打开一个管道执行命令,而管道是有输入(stdin)、输出(stdout) 的!...bufsize 作用就跟python函数open()的buffering参数一样:0表示缓冲,1表示行缓冲,其他正数表示近似的缓冲区字节数,负数表示使用系统默认值。默认是0。...如果是PIPE,则表示需要创建一个新的管道,如果是 None,不会做任何重定向工作,子进程的文件描述符会继承父进程的。...stderr=subprocess.STDOUT, stdin=subprocess.PIPE ) ret = proc.wait() # 此处其实有返回值 with open('输出文件....ShowWindow(whnd, 1) 到此这篇关于pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)的文章就介绍到这了,更多相关pyinstaller打包popen冲突内容请搜索

    3.8K30

    python 下执行wget传入参数

    最近遇到一个问题,使用爬虫爬取视频地址和url存入文件,之后想用python通过wget来下载视频到本地 决定使用subprocess方法调用shell python读取视频名存入name变量,读取视频地址存入...返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的 os.popen(command[,mode[,bufsize]]),图中是一个例子....可以看出,popen方法通过p.read()获取终端输出,而且popen需要关闭close().当执行成功时,close()返回任何值,失败时,close()返回系统返回值....直接调用命令,返回值即是系统返回。shell=True表示命令最终在shell中运行。Python文档中出于安全考虑,建议使用shell=True。...如果你更关注命令的终端输出,可以如下图这样操作, 同样很简单. ?

    2.7K10

    Python调用Ant构建时根据构建状态来决定命令行退出状态

    ,根据返回值来决定命令行的退出状态(0或非0,0代表正常退出) 查阅相关资料,得知python调用系统命令的函数有:os.system、os.popen、commands.getstatusoutput...os.system()无法获得返回值和输出 os.popen()返回的是file read的对象,对其进行读取read()操作可以看到执行的输出。...commands.getstatusoutput()返回系统命令的退出状态和输出 commands.getstatus()返回系统命令的退出状态 commands.getoutput()返回系统命令的输出...subprocess.check_output()执行程序,并返回其标准输出 在使用subprocess.call命令执行Ant命令行时: 不论构建成功还是失败(BUILD SUCCESSFUL...)与Ant构建状态无关, 那么只有 解析命令行输出结果,根据构建成功或失败来决定命令行退出状态 于是,使用os.popen()命令获得输出结果并解析返回状态值 具体Python脚本DEMO

    1K20
    领券