The gMan nixWiki

Because the mind is made of Teflon...

User Tools

Site Tools


cheat_sheets_python

Python

Python's style guide can be found here (PEP 8).

Documentation: I find the W3School site to be more helpful initially. Then, if I need more detail and definition, I got to the official Python doc site (which, honestly, I find difficult to navigate).

W3 Schools:

Python Site: python.org

If you do not want to preface all your script names with python3 to run them, your Python scripts should being with (note: your filesystem address may differ):

#!/usr/bin/python3

Virtual Environment

Create a new virtual environment for every Python project you work on ( read).

  • This way the dependencies of each project are isolated from the system and from the other projects (avoiding conflicts).
  • There are no limits to the number of environments you can have since they are just directories containing a few scripts.

Installation: To use virtual environments, install the python3-venv package.

Create a Virtual Environment: Make a new directory, cd into it, create the environment, and activate it.

$ mkdir dir_name_whatever
$ cd dir_name_whatever

$ python3 -m venv name_of_venv
#    -m : tells python to run the module as a script
#  venv : the module we want to run as a script
#  name : name it whatever you want

$ source name_of_venv/bin/activate
#  runs the script to activate your virt env
#  your prompt should change: prefixed by name of venv

$ deactivate  # exit the venv

Files: Reading From

Use the following syntax when opening and reading a file into a Python program:

with open('filename.txt') as file_object:
    contents = file_object.read()
    print( contents.rstrip() )
  • The open() function returns a file object (an object representing the file).
  • The keyword with closes the file once access to it is no longer needed. This structure will avoid problems…
    • You could open() and close() your file, but if if a bug in your program prevents the close() statement, the file many never close (possible data loss or corruption).
    • The structure above allows Python to automagically close the file when the time is right.
  • The read() method reads then entire file contents and stores it as a string in contents.
    • Note: read() will insert an empty string at EOF which will result in an extra blank line. To remove it, just rstrip().

File Paths: To reference files in other subdirs, you have two options…

  1. Relative File Path: the path to the file relative to the current working directory.
  2. Absolute File Path: the path to the file relative to the current file system.
# A relative file path starts in the directory in which you started Python
with open('files/text files/filename.txt') as file_object:

# An absolute file path (b/c they are long, store them in a variable first)
file_path = '/home/greg/other_files/text_files/filename.txt'
with open(file_path) as file_object:

Web Server

Here's an easy quick Python Web Server in your pwd:

python -m SimpleHTTPServer 8080

Pick a port. 8080 is random. Tab completion works for the module name (-m is for “module”). This allows you to transfer files anywhere on the network.

  • Put your files in the subdir
  • Spin up the Python web server
  • Access that server by IP address: port number (192.168.0.101:8080) from any machine
  • Download files from the server machine to the client machine

Web Server (Py3)

If you use Python 3, you should instead write

python3 -m http.server 8080

Python3 http.server documentation: https://docs.python.org/release/3.0.1/library/http.server.html


FTP One-Liner

Note: You may have to pip install pyftpdlib

python -m pyftpdlib
  1. Ordered List ItemConnect to that machine's IP address with the port number shown.
  2. Download anything. Navigate around.

Main Block

Runs main() if file was not imported:

if __name__ == '__main__':
    main()

By including this if statement around your main program (i.e., not your imports, functions, classes, etc.), you can utilize your code in two ways:

  1. When you run your program from the command line like normal, the program's name becomes main and therefore the main block is executed.
  2. You can also import this program and its code into another program (as if it were a module or library) and have no side effects.
    • Since main will refer to the other program into which you imported your code. Your imported program will act as a Python module and keep is own name (without the extension).
    • This means everything else in your imported program (functions, classes, etc.) is available to you, but the main block will not be executed. Pretty slick
cheat_sheets_python.txt · Last modified: 2023/01/18 01:24 by gman