我有下面的代码片段。最后两个print语句是否等价?敬请指教。
P1 = Popen(shlex.split(hdfs_rm_command), stdout=subprocess.PIPE, stderr=subprocess.PIPE,
universal_newlines=True)
o4, e4 = P1.communicate()
if P1.returncode != 0:
print(e4)
print(P1.stderr)发布于 2021-05-23 01:22:52
不,Popen对象的stderr成员是一个文件句柄,而不是之前写入该文件句柄的字符串。
无论如何,您可能不应该直接使用Popen;这是许多情况中的一种,在这种情况下,您所需要的只是一个run调用,然后它实际上也会提供您所询问的接口。
P1 = subprocess.run(shlex.split(hdfs_rm_command),
capture_output=True,
universal_newlines=True)
if P1.returncode != 0:
print(P1.stderr)https://stackoverflow.com/questions/67652263
复制相似问题