====== Python ====== ===== create window usb install ===== === Using WoeUSB-NG (Recommended GUI) === sudo apt update sudo apt install git p7zip-full python3-pip python3-wxgtk4.0 sudo pip3 install WoeUSB-ng --break-system-packages Run woeusb from the application menu ===== error: externally-managed-environment ===== pip install --break-system-packages ===== Testing for odd ===== num = 7 if num % 2 != 0: print(f"{num} is odd.") ===== Lists ===== * Lists are Python's version of arrays. * They are mutable and zero based indexed. * list = ['tom', 'dick', 'harry'] * if 'tom' in list returns true ===== Importing code ===== * from //machine import PIN// means get the PIN class from the file machine * from //ir_rx.nec import nec_8// means get the NEC_8 class from the file nec in the directory ir_rx ===== Range ===== * Range is start, stop, step to generate a range of numbers # print 0 - 4 for i in range(5): print(i) ===== Passing Variables ===== *** Use classes!** * Python will not change what I think are global variables in functions. * If, for example, you have a variable xyzzy, and you reference it in a function, python creates a new one. * So you have to pass in xyzzy if you want to modify it. * You then have to return it explicitly, because Python returns the value of the last expression. def incrementXyzzy(): xyzzy = xyzzy + 1 #does not work because xyzzy is a local created on the fly def incrementXyzzy(xyzzy): xyzzy = xyzzy + 1 #xyzzy is passed in and can be incremented. it will be returned def incrementXyzzy(xyzzy): xyzzy = xyzzy + 1 return xyzzy #explict return is better #xyzzy is passed in and can be incremented. it will be returned xyzzy = incrementXyzzy(xyzzy): #the calling function MUST assign the returned value ===== Read Csv ===== * import csv * file = open('Emp_Info.csv', 'r') * try: * reader = csv.reader(file) * for each_row in reader: * print(each_row) * finally: * file.close() ===== Lists ===== * create list - stock = [] * append to list - stock.append("fred") ===== Pip ===== * python -m pip install somePackage * sudo python -m pip install email_to <------------------- does not work error: externally-managed-environment This environment is externally managed To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv ===== Files ===== * open file - input = ("someFileLocation", "r") * read a line - line = input.readline() file_path = 'randomfile.txt' file_text = open(file_path, "r") a = True while a: file_line = file_text.readline() if not file_line: print("End Of File") a = False file_text.close() file = open("randomfile.txt", "r") while (f := file.read()): process(f) file.close() ==== Packages ==== * packages live in C:\Users\Donald\AppData\Local\Programs\Python\Python313\Lib\site-packages * a pip install of exifread appeared to work but did not create this package in the above directory * found it on Git, downloaded a zip, and copied the package to the site-packages directory