import subprocess# 返回命令执行结果# result = subprocess.call('ls -l', shell=True)# result = subprocess.call(['ls', '-l'], shell=False)# print(result)# subprocess.check_call(["ls", "-l"])# subprocess.check_call("exit 1", shell=True)# 好像没Python废弃了subprocess.check_output(["echo", "Hello World!"], shell=False)subprocess.check_output("exit 1", shell=True)# 2、执行复杂的系统相关命令# 1)切换目录再执行命令obj = subprocess.Popen("mkdir t3", shell=True, cwd='/home/dev',)# 2)有多行且复杂的命令使用三个接口# obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)# obj.stdin.write("print(1)\n") # 传命令接口# obj.stdin.write("print(2)")# obj.stdin.close()# # cmd_out = obj.stdout.read() # 读接口# obj.stdout.close()# cmd_error = obj.stderr.read() # 读错误接口# obj.stderr.close()# # print(cmd_out)# print(cmd_error)# 3)一次读输出# obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)# obj.stdin.write("print(1)\n")# obj.stdin.write("print(2)")## out_error_list = obj.communicate()# print(out_error_list)# 4)简单写法# obj = subprocess.Popen(["python"], stdin=subprocess.PIPE,stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)# out_error_list = obj.communicate('print("hello")')# print(out_error_list)