如何用Python从终端读取数据?
我只想使用os.system(“dir”),并且能够保存输出到变量的文本。我尝试使用如何用Python从终端读取数据?,python,python-3.x,Python,Python 3.x,我只想使用os.system(“dir”),并且能够保存输出到变量的文本。我尝试使用sys.stdout.read()但运行sys.stdout.readable()返回False。你知道我如何从终端读取数据吗?你可以使用这种方法 范例 将子流程作为sp导入 stdout=sp.check\u输出(“dir”) 打印(标准输出) 使用操作系统库: info = os.popen('dir').read() 关于不同的流,这里有一点混乱,可能是一种更好的方法 对于dir的特定情况,可以用函数替换
sys.stdout.read()
但运行sys.stdout.readable()
返回False
。你知道我如何从终端读取数据吗?你可以使用这种方法
范例
将子流程作为sp导入
stdout=sp.check\u输出(“dir”)
打印(标准输出)
使用操作系统库:
info = os.popen('dir').read()
关于不同的流,这里有一点混乱,可能是一种更好的方法 对于
dir
的特定情况,可以用函数替换所需的功能,或者更好
对于更一般的情况,您将无法读取任意stdout
流。如果您想这样做,您必须设置一个由您控制的I/O流。这并不比使用os.system
复杂多少。例如,您可以使用:
content = subprocess.run("dir", stdout=subprocess.PIPE, check=True).stdout
run
返回的对象有一个stdout
属性,它包含您需要的所有内容。如果您想阅读,只需使用
x = input()
这将从终端读取一行<默认情况下,code>x是一个字符串,但您可以将其强制转换为int,如下所示
x = int(x)
阅读您想要的是
sys.stdin
吗?