Python os.spawn() Examples
The following are 29
code examples of os.spawn().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os
, or try the search function
.
Example #1
Source File: exec_command.py From vnpy_crypto with MIT License | 5 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() # Another historical oddity if text[-1:] == '\n': text = text[:-1] if use_tee and text: print(text) return proc.returncode, text
Example #2
Source File: subprocess.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def _setup_platform(): """Setup the shell command and the command line argument escape function depending on the underlying platform """ global _cmdline2listimpl, _escape_args, _shell_command if os._name in _win_oses: _cmdline2listimpl = _cmdline2list _escape_args = lambda args: [list2cmdline([arg]) for arg in args] else: _cmdline2listimpl = lambda args: [args] _escape_args = lambda args: args for shell_command in os._get_shell_commands(): executable = shell_command[0] if not os.path.isabs(executable): import distutils.spawn executable = distutils.spawn.find_executable(executable) if not executable or not os.path.exists(executable): continue shell_command[0] = executable _shell_command = shell_command return if not _shell_command: import warnings warnings.warn('Unable to determine _shell_command for ' 'underlying os: %s' % os._name, RuntimeWarning, 3)
Example #3
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #4
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #5
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #6
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #7
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #8
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #9
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #10
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #11
Source File: awmstools.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def runProcess(cmd, *args): """Run `cmd` (which is searched for in the executable path) with `args` and return the exit status. In general (unless you know what you're doing) use:: runProcess('program', filename) rather than:: os.system('program %s' % filename) because the latter will not work as expected if `filename` contains spaces or shell-metacharacters. If you need more fine-grained control look at ``os.spawn*``. """ from os import spawnvp, P_WAIT return spawnvp(P_WAIT, cmd, (cmd,) + args) #FIXME; check latest word on this...
Example #12
Source File: subprocess.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 4 votes |
def _setup_platform(): """Setup the shell command and the command line argument escape function depending on the underlying platform """ global _cmdline2listimpl, _escape_args, _shell_command if os._name in _win_oses: _cmdline2listimpl = _cmdline2list _escape_args = lambda args: [list2cmdline([arg]) for arg in args] else: _cmdline2listimpl = lambda args: [args] _escape_args = lambda args: args for shell_command in os._get_shell_commands(): executable = shell_command[0] if not os.path.isabs(executable): import distutils.spawn executable = distutils.spawn.find_executable(executable) if not executable or not os.path.exists(executable): continue shell_command[0] = executable _shell_command = shell_command return if not _shell_command: import warnings warnings.warn('Unable to determine _shell_command for ' 'underlying os: %s' % os._name, RuntimeWarning, 3)
Example #13
Source File: subprocess.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 4 votes |
def _setup_platform(): """Setup the shell command and the command line argument escape function depending on the underlying platform """ global _cmdline2listimpl, _escape_args, _shell_command if os._name in _win_oses: _cmdline2listimpl = _cmdline2list _escape_args = lambda args: [list2cmdline([arg]) for arg in args] else: _cmdline2listimpl = lambda args: [args] _escape_args = lambda args: args for shell_command in os._get_shell_commands(): executable = shell_command[0] if not os.path.isabs(executable): import distutils.spawn executable = distutils.spawn.find_executable(executable) if not executable or not os.path.exists(executable): continue shell_command[0] = executable _shell_command = shell_command return if not _shell_command: import warnings warnings.warn('Unable to determine _shell_command for ' 'underlying os: %s' % os._name, RuntimeWarning, 3)
Example #14
Source File: exec_command.py From elasticintel with GNU General Public License v3.0 | 4 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() # Another historical oddity if text[-1:] == '\n': text = text[:-1] if use_tee and text: print(text) return proc.returncode, text
Example #15
Source File: subprocess.py From medicare-demo with Apache License 2.0 | 4 votes |
def _setup_platform(): """Setup the shell command and the command line argument escape function depending on the underlying platform """ global _cmdline2listimpl, _escape_args, _shell_command if os._name in _win_oses: _cmdline2listimpl = _cmdline2list _escape_args = lambda args: [list2cmdline([arg]) for arg in args] else: _cmdline2listimpl = lambda args: [args] _escape_args = lambda args: args for shell_command in os._get_shell_commands(): executable = shell_command[0] if not os.path.isabs(executable): import distutils.spawn executable = distutils.spawn.find_executable(executable) if not executable or not os.path.exists(executable): continue shell_command[0] = executable _shell_command = shell_command return if not _shell_command: import warnings warnings.warn('Unable to determine _shell_command for ' 'underlying os: %s' % os._name, RuntimeWarning, 3)
Example #16
Source File: exec_command.py From Splunking-Crime with GNU Affero General Public License v3.0 | 4 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() # Another historical oddity if text[-1:] == '\n': text = text[:-1] if use_tee and text: print(text) return proc.returncode, text
Example #17
Source File: exec_command.py From mxnet-lambda with Apache License 2.0 | 4 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() # Another historical oddity if text[-1:] == '\n': text = text[:-1] if use_tee and text: print(text) return proc.returncode, text
Example #18
Source File: test_functional.py From bandit with Apache License 2.0 | 4 votes |
def test_os_spawn(self): '''Test for `os.spawn*`.''' expect = { 'SEVERITY': {'UNDEFINED': 0, 'LOW': 8, 'MEDIUM': 0, 'HIGH': 0}, 'CONFIDENCE': {'UNDEFINED': 0, 'LOW': 0, 'MEDIUM': 8, 'HIGH': 0} } self.check_example('os-spawn.py', expect)
Example #19
Source File: subprocess.py From CTFCrackTools with GNU General Public License v3.0 | 4 votes |
def _setup_platform(): """Setup the shell command and the command line argument escape function depending on the underlying platform """ global _cmdline2listimpl, _escape_args, _shell_command if os._name in _win_oses: _cmdline2listimpl = _cmdline2list _escape_args = lambda args: [list2cmdline([arg]) for arg in args] else: _cmdline2listimpl = lambda args: [args] _escape_args = lambda args: args for shell_command in os._get_shell_commands(): executable = shell_command[0] if not os.path.isabs(executable): import distutils.spawn executable = distutils.spawn.find_executable(executable) if not executable or not os.path.exists(executable): continue shell_command[0] = executable _shell_command = shell_command return if not _shell_command: import warnings warnings.warn('Unable to determine _shell_command for ' 'underlying os: %s' % os._name, RuntimeWarning, 3)
Example #20
Source File: exec_command.py From Carnets with BSD 3-Clause "New" or "Revised" License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() mylocale = locale.getpreferredencoding(False) if mylocale is None: mylocale = 'ascii' text = text.decode(mylocale, errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #21
Source File: exec_command.py From Serverless-Deep-Learning-with-TensorFlow-and-AWS-Lambda with MIT License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() text = text.decode(locale.getpreferredencoding(False), errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #22
Source File: exec_command.py From recruit with Apache License 2.0 | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() mylocale = locale.getpreferredencoding(False) if mylocale is None: mylocale = 'ascii' text = text.decode(mylocale, errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #23
Source File: exec_command.py From twitter-stock-recommendation with MIT License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() text = text.decode(locale.getpreferredencoding(False), errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #24
Source File: exec_command.py From coffeegrindsize with MIT License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() mylocale = locale.getpreferredencoding(False) if mylocale is None: mylocale = 'ascii' text = text.decode(mylocale, errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #25
Source File: exec_command.py From pySINDy with MIT License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() text = text.decode(locale.getpreferredencoding(False), errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #26
Source File: exec_command.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() mylocale = locale.getpreferredencoding(False) if mylocale is None: mylocale = 'ascii' text = text.decode(mylocale, errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #27
Source File: exec_command.py From GraphicDesignPatternByPython with MIT License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() text = text.decode(locale.getpreferredencoding(False), errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #28
Source File: exec_command.py From Mastering-Elasticsearch-7.0 with MIT License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() mylocale = locale.getpreferredencoding(False) if mylocale is None: mylocale = 'ascii' text = text.decode(mylocale, errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text
Example #29
Source File: exec_command.py From lambda-packs with MIT License | 3 votes |
def _exec_command(command, use_shell=None, use_tee = None, **env): """ Internal workhorse for exec_command(). """ if use_shell is None: use_shell = os.name=='posix' if use_tee is None: use_tee = os.name=='posix' if os.name == 'posix' and use_shell: # On POSIX, subprocess always uses /bin/sh, override sh = os.environ.get('SHELL', '/bin/sh') if is_sequence(command): command = [sh, '-c', ' '.join(command)] else: command = [sh, '-c', command] use_shell = False elif os.name == 'nt' and is_sequence(command): # On Windows, join the string for CreateProcess() ourselves as # subprocess does it a bit differently command = ' '.join(_quote_arg(arg) for arg in command) # Inherit environment by default env = env or None try: # universal_newlines is set to False so that communicate() # will return bytes. We need to decode the output ourselves # so that Python will not raise a UnicodeDecodeError when # it encounters an invalid character; rather, we simply replace it proc = subprocess.Popen(command, shell=use_shell, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) except EnvironmentError: # Return 127, as os.spawn*() and /bin/sh do return 127, '' text, err = proc.communicate() text = text.decode(locale.getpreferredencoding(False), errors='replace') text = text.replace('\r\n', '\n') # Another historical oddity if text[-1:] == '\n': text = text[:-1] # stdio uses bytes in python 2, so to avoid issues, we simply # remove all non-ascii characters if sys.version_info < (3, 0): text = text.encode('ascii', errors='replace') if use_tee and text: print(text) return proc.returncode, text