我明白为什么在没有控制台打印时会出现“Bad file descriptor”错误,这是从这篇帖子得出的:why am I getting IOError: (9, 'Bad file descriptor') error while making print statements?。
我的问题是,我怎样才能检测到stdout是否可用?我可以像这样简单地做吗:
if os.path.isfile(2):
print "text"
谢谢
我明白为什么在没有控制台打印时会出现“Bad file descriptor”错误,这是从这篇帖子得出的:why am I getting IOError: (9, 'Bad file descriptor') error while making print statements?。
我的问题是,我怎样才能检测到stdout是否可用?我可以像这样简单地做吗:
if os.path.isfile(2):
print "text"
谢谢
os.path.isfile() 接受一个文件路径(字符串),而不是文件描述符(数字),因此您的解决方案将无法按您的期望工作。
你可以使用 os.isatty() 代替:
if os.isatty(1):
print "text"
os.isatty()
会返回True
,如果它的参数是连接到终端的打开文件描述符。
(顺便提一下,注意stdout
是文件描述符1
。stderr
是文件描述符2
。)
print
放在try ... except
中吗? - kqr