The dangers of the subprocess module

The subprocess module provides tools to launch and manage other programs and commands from within your Python application. For programmers already familiar with their operating system's command-line interface, it often provides a fast and convenient way to accomplish filesystem operations or other administrative tasks. It's also highly effective at sabotaging cross-platform compatibility.

For example, you might be tempted to copy files as follows:

import subprocess
subprocess.call(['cp', 'file1.txt', 'file2.txt'])

This would work on Unix-like operating systems, but fail on Windows as cp is not a valid Windows shell command. The better option in this case is to use the shutil library, which contains high-level ...

Get Python GUI Programming with Tkinter now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.