我正在尝试做类似的事情:
f = subprocess.check_output("./script.sh ls -l test1/test2/test.log", shell=True)
当我打印f时,我得到值0.我尝试使用子进程然后读取()然后我不知道该文件的详细信息。我需要验证文件的大小..
不确定如何做到。
任何帮助?
当我使用
时 f = os.system("./script.sh ls -l test1/test2/test.log")
,我得到输出但没有保存在f中。像stdoutput之类的东西..
更新: 我用了
f = os.popen("./script.sh ls -l test1/test2/test.log 2>&1")
如果我在上面的引号中运行相同的命令,直接在CLI上运行它,它工作正常但如果我在脚本中使用上面的内容或使用s = f.readline()
,脚本会停止,我需要点击"返回"在脚本可以继续之前..
为什么?我需要'因为我需要处理它。
答案 0 :(得分:1)
您可以使用subprocess.check_output:
f = subprocess.check_output("./script.sh ls -l test1/test2/test.log",shell=True)
print(f)
您可以在不使用shell = True的情况下拆分为单个args的列表:
f = subprocess.check_output(['./script.sh', 'ls', '-l', 'test1/test2/test.log']))