--- id: atzw title: Single_file_Python_scripts tags: [] created: Friday, April 26, 2024 --- # Single_file_Python_scripts ## Basic architecture ```py #! /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: ```py def main(): # Do some stuff if __name__ == "__main__": main() ``` ## Related notes ![Python modules and imports](./Python_modules_and_imports.md)