这些print(check_output([“ ls”,“ ../input"]).decode("utf8”))是什么意思?

时间:2018-12-07 20:03:25

标签: python python-3.x subprocess

from subprocess import check_output

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

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

我不太了解python,所以无法理解这些代码的用途。

2 个答案:

答案 0 :(得分:2)

很清楚

调用check_ouput会执行指定的命令ls ../input,该命令会在目录中列出文件夹input

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

然后将其打印出来供您查看。

答案 1 :(得分:2)

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

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

 import os

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

...尽管这并不能对假设文件名以UTF-8返回的情况进行硬编码(这对于可移植性也是一件好事)。