首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用子进程时"ValueError:关闭文件上的I/O操作“

问调用子进程时"ValueError:关闭文件上的I/O操作“
EN

Stack Overflow用户
提问于 2017-09-06 10:54:17
回答 1查看 1.4K关注 0票数 0

我只是尝试调用tracert并以字符串的形式获得结果。tracert调用似乎工作正常,因为结果在发生错误之前显示在控制台上。

代码语言:javascript
复制
    import subprocess
    import sys
    proc = subprocess.Popen(["tracert", "localhost"], stderr=subprocess.PIPE, stdin=subprocess.PIPE)
    print proc.communicate()[0]

错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "-", line 207, in <module>
    main()
  File "-", line 203, in main
    tracert("localhost")
  File "-", line 188, in tracert
    print proc.communicate()[1]
ValueError: I/O operation on closed file

更新:--我尝试了logging而不是print,因为它没有缓冲。

代码语言:javascript
复制
2017-09-07 09:11:57,165 - [test] - INFO - 

Routenverfolgung zu localhost [::1]

�ber maximal 30 Hops:



  1    <1 ms    <1 ms    <1 ms  localhost [::1] 



Ablaufverfolgung beendet.


Traceback (most recent call last):
  File "-\lib\logging\__init__.py", line 885, in emit
    self.flush()
  File "-\logging\__init__.py", line 845, in flush
    self.stream.flush()
ValueError: I/O operation on closed file
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-08 07:43:07

不知何故,stdout被关闭了,我无法写到溪流上。所以这个问题与subprocess一点关系都没有。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46073366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档