2 popfat popfat 于 2016.04.04 16:42 提问

Python中subprocess模块怎样运行外一个shell命令的前提下再运行另外一个,谢谢

比如说先运行切换用户权限,然后再进行操作
比如以下编码是不行的

child1=subprocess.Popen('su test',shell=True)
child1=subprocess.Popen('mkdir test',shell=True)
这样子还是会在当前用户进行mkdir,那怎样做才能在test用户下进行创建?谢谢!!

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.04 21:27

把几个命令放到一个bash脚本 然后popen直接执行jbash脚本

hijack00
hijack00   Rxr 2016.08.23 13:03

将两条命令合成一条,即:child=subprocess.Popen('su test && mkdir test',shell=True)·

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
python脚本中启动另一个python脚本
有时间,我们需要在一个python脚本中调起另一个python脚本,下面我尝试了一下,          1.子脚本 #coding:utf8 #!/usr/local/bin/python import time import datetime import os import sys import traceback import threading import subprocess
使用python subprocess模块实现调用shell执行命令
前两天刚在新做的fedora上装了翻墙神器goagent,可是每次开机都要运行一次proxy.py这个脚本。。感觉巨麻烦,因为我的goagent放在了/home/public下面,每次运行脚本都得翻山越岭,真的受不了了。所以就想写一个脚本能够直接调用shell来运行nohup python path/proxy.py  &这个命令。   后来经过大google一番折腾找到了python subp
Python subprocess,Linux下执行shell命令
import subprocess pingP=subprocess.Popen(args=["gedit"],shell=True) #可以打开Linux程序(外部程序),执行Linux下的shell命令。相当于windows下的os.system() pingP.wait() #等待 print(pingP.pid) #打印编号 print(pingP.returncode) #返回值
Python执行shell脚本的几种方式(最好用subprocess.Popen来替代os.system)
1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息。使用前需要import os。 [python] view plain copy print? os.system("ls")   2. 使用Popen模块产生新的process 现在大部分人都喜欢使用Popen。Popen方法不
python 运行多条shell命令
使用py时可能需要连续运行多条shell 命令 1.# coding: UTF-8 import sys reload(sys) sys.setdefaultencoding('utf8')import subprocess import os import commands#os.system('cmd1 && cmd2') cmd1 = "cd ../" cmd2 = "ls" cmd = cm
python的subprocess:子程序调用(调用执行其他命令);获取子程序脚本当前路径问题
python subprocess用于程序执行时调用子程序,通过stdout,stdin和stderr进行交互。 Stdout子程序执行结果返回,如文件、屏幕等 Stdin 子程序执行时的输入,如文件 Stderr错误输出python subprocess类似os的部分功能,可以说是优化的专项功能类, os调用子程序参见http://blog.csdn.net/longshenlmj/art
python中得到shell命令输出的方法
python中得到shell命令输出的方法:1.import subprocessoutput = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE,shell=True).commun icate() print output[0]2.import commandsreturn_code, output = commands.getstatus
用python实时获取shell命令的输出[rsync备份进度]
项目需要获取rsync备份的实时进度,主要是用到subprocess模块的管道功能,网上查了查是有人这么写的: popen = subprocess.Popen(['ping', 'www.baidu.com', '-n', '3'], stdout = subprocess.PIPE)while True: print popen.stdout.readline() 用到subproces
Python多进程应用的subprocess模块、multiprocessing模块
refer: http://www.cnblogs.com/sunailong/p/5162748.html   我很懒的
Python之使用subprocess处理shell命令
Python学习之使用subprocess处理shell命令 前言 subprocess 实例代码