我尝试使用Python3:
import os
fd = os.open('/dev/tty', os.O_RDWR|os.O_NOCTTY)
print(fd)
它总是在Linux中打印3。 / dev / tty文件描述符总是3?
我想区分/ dev / tty与stdin,stdout,stderr。我最初的尝试是检查文件描述符,因为stdin,stdout,stderr返回0,1或2。
我问这个的原因是因为要在Python中写入/ dev / tty,我必须使用字节而不是字符串,而使用stdin,stderr,stdout,我必须使用字符串。
所以我的第二次尝试是:
try:
if file.isatty() and file not in [sys.stdout,sys.stdin,sys.stderr]:
use_bytes = True
else:
use_bytes = False
except AttributeError:
use_bytes = False
有没有更好的方法呢?