popen

Python - subprocess.Popen - ssh -t user@host 'service --status-all'

隐身守侯 提交于 2020-02-24 20:56:13
问题 I've read a bunch of examples but none of them work for this specific task. Python code: x = Popen(commands, stdout=PIPE, stderr=PIPE, shell=True) print commands stdout = x.stdout.read() stderr = x.stderr.read() print stdout, stderr return stdout Output: [user@host]$ python helpers.py ['ssh', '-t', 'user@host', ' ', "'service --status-all'"] usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile] [-I pkcs11] [-i

Python 使用OS模块调用 cmd

自闭症网瘾萝莉.ら 提交于 2020-02-24 18:34:34
在os模块中提供了两种调用 cmd 的方法, os.popen() 和 os.system() os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的执行结果。 os.popen(cmd,mode) 打开一个与command进程之间的管道。返回值是一个文件对象,可以读或者写(由mode决定,默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。 os.system() 定义: def system(*args, **kwargs): # real signature unknown """ Execute the command in a subshell. """ pass 简单的来说就是在shell中执行command命令 示例: (venv) C:\Users\TynamYang>python Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> >>> import os >>> cmd

Creating a list in python using os.popen

有些话、适合烂在心里 提交于 2020-02-24 04:22:17
问题 Previously, I have been able to create lists using a command similar to the following: os.popen('ls *.fits > samplelist') Now I'm attempting to organize the files into lists by grouping them by number. The files are named as following: Name_0000_J.fits, Name_0001_J.fits, Name_0002_J.fits, ect. I've attempted to run this line of code but it just creates the list skylist_J_1 and leaves it empty. os.popen('for num in {0000..0089} ; do ls Name_$num\_J.fits >> skylist_J_1 ; done') I ran the above

《自拍教程17》Python调用命令

☆樱花仙子☆ 提交于 2020-02-23 18:52:20
他山之石 何为他山之石,就是借助外界工具,来实现自己想要的功能。 命令行界面软件, 即各种命令,我们也叫命令行工具, 此类工具也是测试人员或者开发人员常用的工具的一种。 测试人员可以借助这类工具,快速实现数据处理, 比如Linux自带的wget命令(Windows这边需要自己去下载放到环境变量), 就可以实现下载文件的功能。 调用命令VS编写代码 初学编程的测试人员,编写代码,可能还会有些许难度。 比如通过requests模块, 下载一个文件的命令如下: import requests url = "http://www.zipython.com/images/download_file/angel.mp3" r = requests.get(url) with open("angel.mp3", "wb") as hf: hf.write(r.content) 但是用wget这类命令,只需要以下2行代码。 import os os.system("wget http://www.zipython.com/images/download_file/angel.mp3") 对于初学者,尤其是用习惯了命令的人, 其实可以很快的通过os.system() 就可以调用很多很多的命令行工具软件, 进行数据处理, 所以我很建议, Python自动化测试的初学者 。 先别学着写代码

如何获取os.system函数返回的信息

戏子无情 提交于 2020-02-12 22:43:53
如何获取os.system(‘ipconfig/all’)返回的结果? popen函数和system函数区别 popen() 创建一个管道,通过fork或者invoke一个子进程,然后执行command。返回值在标准IO流中,由于是在管道之中,因此数据流是单向的,command只能产生stdout或者读取stdin,因此type只有两个值:‘w’或‘r’。r表示command从管道中读取数据流,而w表示command的stdout输出到管道中。command无法同时读取和输出。 popen返回该FIFO数据流的指针 。 system()函数先fork一个子进程,在这个子进程中调用/bin/sh -c来执行command指定的命令。/bin/sh在系统中一般是个软链接,指向dash或者bash等常用的shell,-c选项是告诉shell从字符串command中读取要执行的命令(shell将扩展command中的任何特殊字符)。父进程则调用waitpid()函数来为变成僵尸的子进程收尸,获得其结束状态,然后将这个结束状态返回给system()函数的调用者。 返回值: 0、1、-1等int的数字 。 os.system(command)返回的信息 用os.system(‘ipconfig/all’))的时候只返回的是数字0,不是想要的信息。 想获取command返回的信息,需要使用os

Curly Braces in python Popen

北城以北 提交于 2020-02-11 06:53:21
问题 Running subprocess won't handle curly braces correctly # Python 2.7.4 import subprocess subprocess.Popen('ls src/*.cpp',shell=True): src/tonemap.cpp src/pch.cpp subprocess.Popen('ls src/{t,p}*.cpp', shell=True) ls: cannot access src/{p,t}*.cpp: No such file or directory The same program will work on a different machine with python 2.7.2. Both systems use bash shells. Do you the reason and how can I fix it? EDIT: Invoking the command directly from the command line returns the correct result:

Curly Braces in python Popen

微笑、不失礼 提交于 2020-02-11 06:50:42
问题 Running subprocess won't handle curly braces correctly # Python 2.7.4 import subprocess subprocess.Popen('ls src/*.cpp',shell=True): src/tonemap.cpp src/pch.cpp subprocess.Popen('ls src/{t,p}*.cpp', shell=True) ls: cannot access src/{p,t}*.cpp: No such file or directory The same program will work on a different machine with python 2.7.2. Both systems use bash shells. Do you the reason and how can I fix it? EDIT: Invoking the command directly from the command line returns the correct result:

Curly Braces in python Popen

懵懂的女人 提交于 2020-02-11 06:50:05
问题 Running subprocess won't handle curly braces correctly # Python 2.7.4 import subprocess subprocess.Popen('ls src/*.cpp',shell=True): src/tonemap.cpp src/pch.cpp subprocess.Popen('ls src/{t,p}*.cpp', shell=True) ls: cannot access src/{p,t}*.cpp: No such file or directory The same program will work on a different machine with python 2.7.2. Both systems use bash shells. Do you the reason and how can I fix it? EDIT: Invoking the command directly from the command line returns the correct result:

Difference between whole string command and list of strings in popen

别说谁变了你拦得住时间么 提交于 2020-02-03 10:33:23
问题 I found most of the programmers suggest use list of strings to represent the command in popen. However, in my own project, I found a whole string works in more cases. For example, the following works subprocess.Popen('pgrep -f "\./run"', stdout=subprocess.PIPE, shell=True).wait() while subprocess.Popen(['pgrep', '-f', '"\./run"'], stdout=subprocess.PIPE, shell=True).wait() does not. May I know what's the difference between these two ways of implementation and why the second one does not work

Python调用系统命令的6种方法

情到浓时终转凉″ 提交于 2020-02-02 16:36:41
Python调用系统命令的6种方法 在Python中调用系统命令一般使用os或者subprocess模块,下面介绍Python中最常用的6种调用系统命令的方法。 1、os.system() 该函数返回命令执行结果的返回值,system()函数在执行过程中进行了以下三步操作: 1、fork一个子进程; 2、在子进程中调用exec函数去执行命令; 3、在父进程中调用wait(阻塞)去等待子进程结束。 返回0表示命令执行成功,其他表示失败。 用法: os.system("command") 2、os.popen() 这种调用方式是通过管道的方式来实现,函数返回是 file read 的对象,对其进行读取read、readlines等操作可以看到执行的输出。 用法: os.popen("command") 3、subprocess.Popen() subprocess模块被推荐用来替换一些老的模块和函数,如:os.system、os.spawn 、os.popen 等 subprocess模块目的是fork一个新的进程并与之通信,最常用是定义类Popen,使用Popen可以创建进程,并与进程进行复杂的交互。 用法: child = subprocess.Popen(["cmd","arg1"...]) 4、subprocess.call() 执行指定的命令,返回命令执行状态