Implementing command pattern in Python
The important thing to know about commands in Python (or any language with first-class functions) is that they're usually trivial.  Commands with only one operation (execute) are simply functions. There's no need to define classes. Even commands with two operations can be represented as pairs of functions: (do, undo). The whole, heavyweight pattern is almost never used.

Comments on the above implementation:


Command parameters such as filenames should be arguments to the constructor, not to execute. The code that calls execute doesn't know what these values should be, so they need to already be in the command.
There's no reason to keep a table of commands. Just create commands as needed.
Invoker.execute manually dispatches by command name. Instead it should blindly call execute or undo, and let method dispatch find the appropriate method.
The Invoker class does nothing useful.
Why bother getting the method name from inspect.stack when the method already knows its own name?
I might call execute do, for symmetry with undo.
ABCMeta is unnecessary complexity. If you must use it, it's clearer to write class Command(metaclass=ABCMeta) rather than assigning to __metaclass__.
The file operations don't undo properly if a file was overwritten. (This is not relevant to the pattern; it's just a bug.)