这些打印是什么(check_output([“ls”,“.. / input”])。decode(“theff8”))是什么意思?

问题描述 投票:0回答:2
from subprocess import check_output

print(check_output(["ls", "../input"]).decode("utf8"))

代码来自这里https://www.kaggle.com/itoeiji/deep-reinforcement-learning-on-stock-data

我知道很少的python,所以无法理解这些代码的目的是什么。

python python-3.x subprocess
2个回答
2
投票

很清楚,

调用check_ouput命令指定ls ../input命令将input文件夹列入目录。

然后它将命令结果解码为utf-8。

然后它打印出来供你查看。


2
投票

check_output运行shell命令并返回其标准输出。 decode将字节字符串解码为正确的Python Unicode字符串。

should generally not use ls programmatically,你通常应该避免使用外部子进程来完成Python可以轻松执行的任务。一种更好,更便携,更有效的方法来实现相同的结果

 import os

 print('\n'.join(os.listdir('../input')))

...虽然这并没有硬编码文件名作为UTF-8返回的假设(这对于可移植性来说也许是一件好事)。

© www.soinside.com 2019 - 2024. All rights reserved.