The subprocess module in Python is a powerful tool for executing and managing external processes. If you’re looking to enhance your scripts with shell commands or manage system processes, here's what you need to know:
- 🎯 Basic Execution:
Use
subprocess.run() to run a command easily. import subprocess
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)
- 📥 Capturing Output:
Capture the standard output or error by setting
capture_output=True.- ⚙️ Advanced Usage:
For more complex interactions, you might want to use
subprocess.Popen(). This provides more control over input/output streams:process = subprocess.Popen(['grep', 'python'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
output, errors = process.communicate(input=b'python is awesome\njava is too\n')
print(output.decode())
- 💡 Avoid Shell Injection Risks:
Always pass commands as a list to avoid vulnerabilities.
Explore the flexibility and power of subprocesses and take your Python skills to the next level! Happy coding! 🐍✨
