Emacs Lisp: Python 2to3 Wrapper 🚀
Here's a handy emacs lisp wrapper for converting current buffer's python 2 script to python 3.
put this in your Emacs Init File:
(defun xah-python-2to3-current-file () "Convert current buffer from python 2 to python 3. This command calls python3's script 「2to3」. URL `http://xahlee.info/emacs/emacs/elisp_python_2to3.html' Version 2016-02-16" (interactive) (let* ( (fName (buffer-file-name)) (fSuffix (file-name-extension fName))) (when (buffer-modified-p) (save-buffer)) (if (or (string-equal fSuffix "py") (string-equal fSuffix "py3")) (progn (shell-command (format "2to3 -w %s" fName)) (revert-buffer "IGNORE-AUTO" "NOCONFIRM" "PRESERVE-MODES")) (error "file 「%s」 doesn't end in “.py” or “.py3”." fName))))
A handy command to go with it is Emacs: Run Current File 🚀
See also: Emacs Lisp: Command Wrapper Calling Shell, Python Code