Single file Python scripts

Basic architecture

#! /usr/local/bin/python3

import sys

if __name__ == "__main__":
    all_args = sys.argv
    specific_arg = sys.argv[0]
    # Main functionality...

When you run a script (module) Python assigns the string __main__ to the __name__ attribute to the script that is being executed.

If you run the script as an import into another script, the __name__ attribute of the imported module is set to the module name, not __main__.

Everything can go under the __main__ conditional, or, for better readability, you can define a main function that is then invoked, e.g:


def main():
    # Do some stuff


if __name__ == "__main__":
    main()

Python modules and imports