Files
2025-05-20 11:57:43 -04:00

50 lines
1.2 KiB
Python

#!/usr/bin/env python
import sys
from subprocess import check_output, Popen, CalledProcessError, STDOUT, PIPE # <1>
from glob import glob
import shlex
if sys.platform == 'win32':
CMD = 'cmd /c dir'
FILES = r'..\DATA\t*'
else:
CMD = 'ls -ld'
FILES = '../DATA/t*'
cmd_words = shlex.split(CMD)
cmd_files = glob(FILES)
full_cmd = cmd_words + cmd_files
# <2>
try:
output = check_output(full_cmd) # <3>
print("Output:", output.decode(), sep='\n') # <4>
except CalledProcessError as e:
print("Process failed with return code", e.returncode)
print('-' * 50)
# <5>
try:
cmd = cmd_words + cmd_files + ['spam.txt']
proc = Popen(cmd, stdout=PIPE, stderr=STDOUT) # <6>
stdout, stderr = proc.communicate() # <7>
print("Output:", stdout.decode()) # <8>
except CalledProcessError as e:
print("Process failed with return code", e.returncode)
print('-' * 50)
try:
cmd = cmd_words + cmd_files + ['spam.txt']
proc = Popen(cmd, stdout=PIPE, stderr=PIPE) # <9>
stdout, stderr = proc.communicate() # <10>
print("Output:", stdout.decode()) # <11>
print("Error:", stderr.decode()) # <11>
except CalledProcessError as e:
print("Process failed with return code", e.returncode)
print('-' * 50)