• python之shell


    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)
    ")  # 传命令接口
    # 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)
    ")
    # 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)
  • 相关阅读:
    [APIO2018]铁人两项 --- 圆方树
    SPOJ1811 && SPOJ1812
    [BZOJ4627][BeiJing2016]回转寿司(线段树)
    NOIP2018提高组题解
    [BZOJ4340][BJOI2015]隐身术(后缀数组)
    [BZOJ4338][BJOI2015]糖果(扩展Lucas)
    [BZOJ4336][BJOI2015]骑士的旅行(树链剖分+线段树)
    [BZOJ4419][SHOI2013]发微博
    [BZOJ2878][NOI2012]迷失游乐园(环套树DP+概率)
    [BZOJ1791][IOI2008]Island岛屿(环套树DP)
  • 原文地址:https://www.cnblogs.com/wanghuixi/p/10787138.html
Copyright © 2020-2023  润新知