本文整理匯總了Python中subprocess.Popen方法的典型用法代碼示例。如果您正苦於以下問題:Python subprocess.Popen方法的具體用法?Python subprocess.Popen怎麽用?Python subprocess.Popen使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類subprocess
的用法示例。
在下文中一共展示了subprocess.Popen方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: get_num_triggering_samples
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def get_num_triggering_samples(signature, samples):
"""
Get number of samples triggering ClamAV signature _signature_.
:param signature: A dictionary with keys 'type' for the signature type
and 'signature' for the signature string.
:param samples: A list of sample paths to scan.
:returns: The number of samples triggering this signature.
"""
handle, temp_sig = tempfile.mkstemp(suffix = "." + signature["type"])
try:
with os.fdopen(handle, "w") as f:
f.write(signature["signature"])
proc_clamscan = subprocess.Popen(["clamscan",
"-d", temp_sig,
"--no-summary", "--infected"] + samples,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
stdout, stderr = proc_clamscan.communicate()
if not stdout:
return 0
else:
return len(stdout.strip().split("\n"))
finally:
os.unlink(temp_sig)
示例2: alignProcWrapper
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def alignProcWrapper(ref, seq):
cmd = "python {} {} {}".format(
os.path.realpath(__file__),
ref,
seq)
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = proc.communicate()
if proc.returncode != 0:
return None
fields = out.split()
strand = fields[0].decode()
aln = Aln(int(fields[1]), int(fields[2]), fields[3].decode(), int(fields[4]), int(fields[5]))
return strand, aln
示例3: main
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def main():
env = os.environ.copy()
# in case the PYTHONHASHSEED was not set, set to 0 to denote
# that hash randomization should be disabled and
# restart python for the changes to take effect
if 'PYTHONHASHSEED' not in env:
env['PYTHONHASHSEED'] = "0"
proc = subprocess.Popen([sys.executable] + sys.argv,
env=env)
proc.communicate()
exit(proc.returncode)
# check if hash has been properly de-randomized in python 3
# by comparing hash of magic tuple
h = hash(eden.__magic__)
assert h == eden.__magic_py2hash__ or h == eden.__magic_py3hash__, 'Unexpected hash value: "{}". Please check if python 3 hash normalization is disabled by setting shell variable PYTHONHASHSEED=0.'.format(h)
# run program and exit
print("This is the magic python hash restart script.")
exit(0)
示例4: update_version_py
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def update_version_py():
if not os.path.isdir(".git"):
print("This does not appear to be a Git repository.")
return
try:
# p = subprocess.Popen(["git", "describe","--tags", "--always"],
# stdout=subprocess.PIPE)
p = subprocess.Popen("git rev-list HEAD --count".split(),
stdout=subprocess.PIPE)
except EnvironmentError:
print("unable to run git, leaving eden/_version.py alone")
return
stdout = p.communicate()[0]
if p.returncode != 0:
print("unable to run git, leaving eden/_version.py alone")
return
ver = "0.3."+stdout.strip()
# ver = str(int(ver,16)) # pypi doesnt like base 16
f = open("eden/_version.py", "w")
f.write(VERSION_PY % ver)
f.close()
print("set eden/_version.py to '%s'" % ver)
示例5: call
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def call(self, cmd, **kwargs):
print('Running "{}"'.format(cmd), file=sys.stderr)
expect = kwargs.pop("expect", [dict(return_codes=[os.EX_OK], stdout=None, stderr=None)])
process = subprocess.Popen(cmd, stdin=kwargs.get("stdin", subprocess.PIPE), stdout=subprocess.PIPE,
stderr=subprocess.PIPE, **kwargs)
out, err = process.communicate()
return_code = process.poll()
out = out.decode(sys.stdin.encoding)
err = err.decode(sys.stdin.encoding)
def match(return_code, out, err, expected):
exit_ok = return_code in expected["return_codes"]
stdout_ok = re.search(expected.get("stdout") or "", out)
stderr_ok = re.search(expected.get("stderr") or "", err)
return exit_ok and stdout_ok and stderr_ok
if not any(match(return_code, out, err, exp) for exp in expect):
print(err)
e = subprocess.CalledProcessError(return_code, cmd, output=out)
e.stdout, e.stderr = out, err
raise e
return self.SubprocessResult(out, err, return_code)
示例6: get_perf
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def get_perf(filename):
''' run conlleval.pl perl script to obtain
precision/recall and F1 score '''
_conlleval = PREFIX + 'conlleval'
if not isfile(_conlleval):
#download('http://www-etud.iro.umontreal.ca/~mesnilgr/atis/conlleval.pl')
os.system('wget https://www.comp.nus.edu.sg/%7Ekanmy/courses/practicalNLP_2008/packages/conlleval.pl')
chmod('conlleval.pl', stat.S_IRWXU) # give the execute permissions
out = []
proc = subprocess.Popen(["perl", _conlleval], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
stdout, _ = proc.communicate(open(filename).read())
for line in stdout.split('\n'):
if 'accuracy' in line:
out = line.split()
break
# out = ['accuracy:', '16.26%;', 'precision:', '0.00%;', 'recall:', '0.00%;', 'FB1:', '0.00']
precision = float(out[3][:-2])
recall = float(out[5][:-2])
f1score = float(out[7])
return {'p':precision, 'r':recall, 'f1':f1score}
示例7: pipe_fopen
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def pipe_fopen(command, mode, background=True):
if mode not in ["rb", "r"]:
raise RuntimeError("Now only support input from pipe")
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
def background_command_waiter(command, p):
p.wait()
if p.returncode != 0:
warnings.warn("Command \"{0}\" exited with status {1}".format(
command, p.returncode))
_thread.interrupt_main()
if background:
thread = threading.Thread(target=background_command_waiter,
args=(command, p))
# exits abnormally if main thread is terminated .
thread.daemon = True
thread.start()
else:
background_command_waiter(command, p)
return p.stdout
示例8: get_git_hash
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def get_git_hash():
def _minimal_ext_cmd(cmd):
# construct minimal environment
env = {}
for k in ['SYSTEMROOT', 'PATH', 'HOME']:
v = os.environ.get(k)
if v is not None:
env[k] = v
# LANGUAGE is used on win32
env['LANGUAGE'] = 'C'
env['LANG'] = 'C'
env['LC_ALL'] = 'C'
out = subprocess.Popen(
cmd, stdout=subprocess.PIPE, env=env).communicate()[0]
return out
try:
out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD'])
sha = out.strip().decode('ascii')
except OSError:
sha = 'unknown'
return sha
示例9: disas_objdump
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def disas_objdump(b):
with open("/dev/shm/shifter", "w") as f:
f.write(b)
if arch == "64":
dis, errors = subprocess.Popen("objdump -D --insn-width=256 -b binary \
-mi386 -Mx86-64 /dev/shm/shifter | head -8 | tail -1",
stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).communicate()
else:
dis, errors = subprocess.Popen("objdump -D --insn-width=256 -b binary \
-mi386 /dev/shm/shifter | head -8 | tail -1",
stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).communicate()
dis = dis[6:] # address
raw = dis[:256*3].replace(" ","")
dis = dis[256*3:].strip().split(None, 2)
mnemonic = dis[0]
if len(dis) > 1:
op_str = dis[1]
else:
op_str = ""
if mnemonic == "(bad)":
mnemonic = "(unk)"
insn = ""
op_str = ""
size = len(raw)/2
return (mnemonic, op_str, size)
示例10: start
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def start(self):
self.command = "%s %s -%c -R %s -s %d" % \
(
INJECTOR,
" ".join(self.settings.args),
self.settings.synth_mode,
"-0" if self.settings.root else "",
self.settings.seed
)
self.process = subprocess.Popen(
"exec %s" % self.command,
shell=True,
stdout=subprocess.PIPE,
stdin=subprocess.PIPE,
preexec_fn=os.setsid
)
示例11: dd_iso_image
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def dd_iso_image(self, input_, output, gui_update, status_update):
''' Implementation for OS that use dd to write the iso image.
'''
in_file_size = os.path.getsize(input_)
cmd = [self.dd_exe, 'if=' + input_,
'of=' + self.physical_disk(output), 'bs=1M']
self.dd_iso_image_add_args(cmd, input_, output)
kw_args = {
'stdout' : subprocess.PIPE,
'stderr' : subprocess.PIPE,
'shell' : False,
}
self.add_dd_iso_image_popen_args(kw_args)
self.dd_iso_image_prepare(input, output, status_update)
log('Executing => ' + str(cmd))
dd_process = subprocess.Popen(cmd, **kw_args)
output_q = queue.Queue()
while dd_process.poll() is None:
self.dd_iso_image_readoutput(dd_process, gui_update, in_file_size,
output_q)
output_lines = [output_q.get() for i in range(output_q.qsize())]
for l in output_lines:
log('dd: ' + l)
return self.dd_iso_image_interpret_result(
dd_process.returncode, output_lines)
示例12: dd_iso_image_readoutput
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def dd_iso_image_readoutput(self, dd_process, gui_update, in_file_size,
output_q):
# If this time delay is not given, the Popen does not execute
# the actual command
time.sleep(0.1)
dd_process.send_signal(signal.SIGUSR1)
dd_process.stderr.flush()
while True:
time.sleep(0.1)
out_error = dd_process.stderr.readline().decode()
if out_error:
if 'bytes' in out_error:
bytes_copied = float(out_error.split(' ', 1)[0])
gui_update( bytes_copied / in_file_size * 100. )
break
if 15 < output_q.qsize():
output_q.get()
output_q.put(out_error.rstrip())
else:
# stderr is closed
break
示例13: gpt_device
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def gpt_device(self, dev_name):
disk_dev = self.physical_disk(dev_name)
cmd = ['parted', disk_dev, '-s', 'print']
with open(os.devnull) as devnull:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, stdin=devnull)
_cmd_out, _err_out = p.communicate()
p.wait()
if p.returncode != 0:
lang = os.getenv('LANG')
encoding = lang.rsplit('.')[-1] if lang else 'utf-8'
raise RuntimeError(str(_err_out, encoding))
subprocess.check_call(['partprobe', disk_dev])
if b'msdos' in _cmd_out:
return False
if b'gpt' in _cmd_out:
return True
raise RuntimeError("Disk '%s' is uninitialized and not usable." %
disk_dev)
示例14: detect_missing_tools
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def detect_missing_tools(distro):
tools_dir = os.path.join('data', 'tools')
if platform.system() == 'Windows':
_7zip_exe = gen.resource_path(
os.path.join(tools_dir, '7zip', '7z.exe'))
e2fsck_exe = gen.resource_path(os.path.join(tools_dir, 'cygwin', 'e2fsck.exe'))
resize2fs_exe = gen.resource_path(os.path.join(tools_dir, 'cygwin', 'resize2fs.exe'))
else:
_7zip_exe = '7z'
e2fsck_exe = 'e2fsck'
resize2fs_exe = 'resize2fs'
if distro not in creator_dict or \
creator_dict[distro][0] is not create_persistence_using_resize2fs:
return None
try:
with open(os.devnull) as devnull:
for tool in [e2fsck_exe, resize2fs_exe]:
p = subprocess.Popen([tool], stdout=devnull, stderr=devnull)
p.communicate()
except FileNotFoundError: # Windows
return "'%s.exe' is not installed or not available for use." % tool
except OSError: # Linux
return "'%s' is not installed or not available for use." % tool
return None
示例15: predict_on_batch
# 需要導入模塊: import subprocess [as 別名]
# 或者: from subprocess import Popen [as 別名]
def predict_on_batch(self, inputs):
# write test fasta file
temp_input = tempfile.NamedTemporaryFile(suffix = ".txt")
test_fname = temp_input.name
encode_sequence_into_fasta_file(ofname = test_fname, seq = inputs.tolist())
# test gkmsvm
temp_ofp = tempfile.NamedTemporaryFile(suffix = ".txt")
threads_option = '-T %s' % (str(self.threads))
verbosity_option = '-v 0'
command = ' '.join(['gkmpredict',
test_fname,
self.model_file,
temp_ofp.name,
threads_option,
verbosity_option])
#process = subprocess.Popen(command, shell=True)
#process.wait() # wait for it to finish
exit_code = os.system(command)
temp_input.close()
assert exit_code == 0
# get classification results
temp_ofp.seek(0)
y = np.array([line.split()[-1] for line in temp_ofp], dtype=float)
temp_ofp.close()
return np.expand_dims(y, 1)