Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Python从终端读取数据?_Python_Python 3.x - Fatal编程技术网

如何用Python从终端读取数据?

如何用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的特定情况,可以用函数替换

我只想使用os.system(“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
吗?