Python 调用shell】的更多相关文章

python调用shell命令方法 1.os.system(cmd) 缺点:不能获取返回值 2.os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等  例:a=os.popen(cmd).read() 3.commands 模块,其实也是对popen的封装. 此模块主要有如下方法:commands.getstatusoutput(cmd) 返回(status, output).commands.getoutput(cmd) 只返回输出结果comma…
python 调用 shell get_line_num="wc -l as_uniq_info | awk '{print $1}'" ###get the lines of "as_uniq_info" line_num = os.popen(get_line_num).read().strip('\n') get_line_num 作为shell执行的命令,会取得文件as_uniq_info文件的行数 os.popen(get_line_num):执行shel…
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器: #!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里. python调用shell命令的方法有许多 1.1   os.system(command)        在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准库函数system()实现的.这个函数在执…
记录 python 调用 shell 命令的方法 加载 os 模块, 使用 os 类 import os; os.system("ls /");…
Python 调用 Shell脚本的方法 1.os模块的popen方法 通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出. >>> os.popen('date -u |wc') <open file 'date -u |wc', mode 'r' at 0x7f9539eb34b0> >>> os.popen('date -u |wc').read() ' 1 6 43\n' 2.利用c…
Python经常被称作“胶水语言”,因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库,也当然可以用Python调用Shell命令. 用Python调用Shell命令有如下几种方式: 第一种:os.system os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回.返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的. 第二种:os.popen os.popen(co…
Python调用shell指令 方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256表示未找到,该方法适用于shell命令不需要输出内容的场景. 举例说明: 1. 列举当前目录下的所有文件. 1 import os 2 val = os.system('ls -al') 3 print val 没有找到时,sh返回的状态码是1,而适用python调用,返回的是:256 方法二.使用os.…
在python程序中调用shell命令,是件很酷且常用的事情…… 1. os.system(command) 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示.这实际上是使用C标准库函数system()实现的. 缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. 实例:os.system('ls -l *') 2. os.popen(command,…
最近遇到了一个问题,就是python代码调用shell脚本时,发现输入输出的文件,总是和自己预想的有偏差,但是单独在linux下执行命令的时候,却没有错误.后来发现是相对路径的问题,因为执行python文件的时候,会有一个工作目录,而执行shell脚本的时候,又会有一个工作目录,这样就很容易混淆.最好的办法:在执行shell脚本时,将目录切换到shell脚本下: cmd = '/home/usr/asdasd/' os.system(cmd) 这样问题就解决了.…
今天学习了Python通过子进程调用shell,感觉教程上讲的过于繁复,有一些根本没用的功能,比如重定向输入输出,这个shell本身就支持,没有必要用Python的api.决定自己总结下. 其实总的来说只有两种: 第一种是简单调用,这种情况下父进程会等待子进程执行完成,返回值是退出信息,例子: #导入子流程包 import subprocess #简单调用,可以写多个shell语句,用分号隔开,可以把shell端输出的内容重定向到文本以便python读取,r返回0说明运行正常 r=subproc…
在python脚本中,有时候需要调用shell获取一下信息,下面介绍两种常用的调用方法. 第一种,os.system() 这个函数获取的是命令的执行状态,比如 >>> import os >>> a = os.system('echo 123') 123 >>> print a 0 >>> 变量a的值是“echo 123”这个命令的执行状态,成功或者失败,不是这个命令的输出. 第二种,os.popen() 这个函数获取的是命令的输出,…
1.subprocess介绍 官方推荐 subprocess模块,os.system(command) 这个废弃了 亲测 os.system 使用sed需要进行字符转义,非常麻烦 python3 subprocess模块使用 2.subprocess模块使用 官网说明文档  subprocess.call 和 subprocess.check_call执行命令,返回状态码.两者唯一的区别在于返回值.执行成功,都返回 0:执行失败,check_call 将raise出来CalledProcessE…
python程序中调用shell命令,是件很酷且常用的事情今天来总结一下   1.使用os模块 的  system         此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态.如果command有执行内容,会在标准输出显示.这实际上是使用C标准库函数system()实现的.      system方法会创建子进程运行外部程序,方法只返回外部程序的运行状态.这个方法比较适用于外部程序没有输出结果的情况 >>> import os>&…
# coding=utf-8   //设置文本格式import os            //导入os方法print('hello')n=os.system('/home/csliyb/kjqy_xcy/bdse-tour-dp-2.1/bin/test.sh') //调用shell脚本print '执行完毕'…
第一种,os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回.返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的. 第二种,os.popen(command[,mode[,bufsize]]),先给大家看个例子 import os p = os.popen("dir c:", 'r') p.read() bla bla... <这里是dir正确的输出…
linux系统下进入python交互式环境: 一.os 模块 1.1.os模块的exec方法簇: python交互界面中: In [1]: import os In [2]: os.exec os.execl os.execlp os.execv os.execvp os.execle os.execlpe os.execve os.execvpe In [2]: os.execl? Type: function String form: <function execl at 0xb73673e…
preface: 忙于近期的任务,须要用到libsvm的一些命令.如在终端执行java svm_train train_file model_file. pythonsubset.py file train_num train_file test_file等命令.但file的准备又是通过python写好的.file须要是libsvm可以接受的格式.故用python写好特征.转为libsvm可以接受的格式.生成file,然后在终端调用训练.故想着直接在python代码里面直接执行终端的命令.博友博…
使用subprocess模块判断当前进程是否存在 #! /usr/bin/env python import subprocess res = subprocess.Popen(r'ps -ef |grep java |grep -v grep |wc -l', shell=True, # 正确值 stdout=subprocess.PIPE, # 错误值 stderr=subprocess.PIPE,) # 在windows 中需要使用 decode("gbk") PID_tomca…
目前使用到的有两种方式:os.system()和os.popen() import os os.system('cd e:cjx') #调用后返回执行结果状态 如果想获得返回结果,则使用以下方式: import os res = os.popen('dir').readlines() print(res)  如果要连续执行多个命令: import os os.system('e: & cd e:\cjx & dir')…
def generate_csv_source(data_file): #判断文件是否存在 if not os.path.exists(data_file): # 拉取hive表数据 cmd_sql = 'hive -e "set hive.cli.print.header=true; \ select * from dw.full_d_usr_channel_sum_v3 where ds<>\'\' \ and type in (\'super\',\'9k9\',\'taoba…
1.用os.system(cmd)   不过取不了返回值 2.用os.popen(cmd)   要得到命令的输出内容,只需再调用下read()或readlines()等 如a=os.popen(cmd).read() 3.用 commands 模块.其实也是对popen的封装.此模块主要有如下方法 commands.getstatusoutput(cmd) 返回(status, output). commands.getoutput(cmd) 只返回输出结果 commands.getstatus…
首先创建2个shell脚本文件,测试用. test_shell_no_para.sh 运行时,不需要传递参数 test_shell_2_para.sh 运行时,需要传递2个参数  test_shell_no_para.sh 内容如下:  test_shell_2_para.sh内容如下 注意含有变量的字符串要用 双引号 括起来 直接在命令行运行 test_shell_2_para.sh 执行结果如下: wangju@wangju-HP--G4:~$ sh test_shell_2_para.sh…
python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容.所以说一般我们认为popen更加强大 os.system(cmd): 该方法在调用完shell脚本后,返回一个16位的二进制 数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情况下,则函数的返回值是0×100,换算为1…
1.用python调用python脚本 #!/usr/local/bin/python3. import time import os count = str = ('python b.py') result1 = os.system(str) print(result1) while True: count = count + : print('this count is:',count) break else: time.sleep() print('this count is:',coun…
1.用python调用python脚本 #!/usr/local/bin/python3.7 import time import os count = 0 str = ('python b.py') result1 = os.system(str) print(result1) while True: count = count + 1 if count == 8: print('this count is:',count) break else: time.sleep(1) print('t…
有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法:1. os 模块 1.1. os模块的exec方法族Python的exec系统方法同Unix的exec系统调用是一致的.这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回.( 这个看了点 help(os)  --> search "exec" 的相关介绍,但是没太搞…
最近由于项目自动化构建的需要,研究了下gradle调用脚本并传参的用法,在此作个总结. Pre build.gradle中定义了$jenkinsJobName $jenkinsBuild两个Jenkins变量,意图将gradle中的这两个值传到shell/python脚本中去用 def jenkinsBuild = System.getenv("BUILD_NUMBER") ?: "0" println "jenkinsBuild is set to $j…
subprocess模块 根据Python官方文档说明,subprocess模块用于取代上面这些模块.有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来干活. >>> from subprocess import call >>> call(["ls", "-l"]) subprocess与system相比的优势是它更灵活(你可以得到标准输出,标准错误,“真…
有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1. os模块的exec方法族 Python的exec系统方法同Unix的exec系统调用是一致的.这些方法适用 于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回.( 这个看了点 help(os)  --> search "exec" 的相关介绍,但是…