Python 在 Linux 上查找 stdin 文件路径
我如何知道附加到我的 stios 的文件(或 tty)?
比如:
>>> import sys
>>> print sys.stdin.__path__
'/dev/tty1'
>>>
我可以查看 proc:
import os, sys
os.readlink('/proc/self/fd/%s' % sys.stdin.fileno())
但似乎应该有一个内置的方法?
How can I tell the file (or tty) that is attached to my stdios?
Something like:
>>> import sys
>>> print sys.stdin.__path__
'/dev/tty1'
>>>
I could look in proc:
import os, sys
os.readlink('/proc/self/fd/%s' % sys.stdin.fileno())
But seems like there should be a builtin way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
sys.std* 对象是标准 Python 文件对象,因此它们具有一个
name
属性 和一个isatty
方法:无法准确告诉您 TTY 是什么你得到的设备,这是Python提供的API的扩展。
The sys.std* objects are standard Python file objects, so they have a
name
attribute and aisatty
method:Short of telling you exactly what TTY device you got, that's the extend of the API offered by Python.
知道了!
如果 stdin 不是 TTY,它会
引发
OSError: [Errno 22] Invalid argument
;但这很容易用isatty()
进行测试Got it!
It
raise
sOSError: [Errno 22] Invalid argument
if stdin isn't a TTY; but thats easy enough to test for withisatty()