我有以下按预期执行的函数。
def get_files(paths):
for path in paths:
file_name = parse_path(path)
csv_command = "curl -b ./cookie {} > ./tmp/{}".format(path, file_name)
subprocess.run([csv_command], shell=True)
print("success")
我的问题是我也在从子进程中捕获standardout。如何修改函数以忽略子进程的标准。我将使用记录器进行日志记录,并且需要确保STDout仍然会进行日志记录
将句柄传递给DEVNULL目录以获取标准输出。 (可以使用subprocess.DEVNULL访问)
这应该会抑制函数的输出
subprocess.run([csv_command], shell=True, stdout=subprocess.DEVNULL)
您可以通过阅读此页面看到更多选项:https://docs.python.org/3/library/subprocess.html#subprocess.DEVNULL
只需关闭文件描述符:
process.stdout.close()
process
是你想要阅读的过程。