Python
code snippets and stuff for Python
Programm Setup
Install pyenv and set it to the version you want to use Install virtualenv, using pyenv is not necessary but I like it to keep my python versions managed. Install python3.10-venv
if an error message tells to.
curl https://pyenv.run | bash
pyenv install 3.11
pyenv local 3.11
apt install python3.10-venv #might not be needed with pyenv
pyenv local 3.9.0
python -m venv
Shebang and program layout
#!/usr/bin/env python3
def main(kwargs**, args**):
pass
if __name__ == '__main__':
main()
Beautiful Soup
Use beautiful soup for scraping and manipulating html content
pip install bs4
from bs4 import BeautifulSoup
Commandline execution
The -c
flag tells python to run the appended string as a command. For example
➜ python3 -c "import datetime; print('It is: ',datetime.datetime.now())"
It is: 2022-03-29 13:37:50.057810
Help Function
adding an explantion string to a function can be used by the help()
function to give explanation into what it is doing.
def adder(x,y):
"""
adds to numbers x and y and returns the sum
"""
return x+y
help(adder)
for a class this looks like:
class person():
"""
A new person is born
"""
def __init__ (self, name):
"""
Give the person a name
"""
self.name = name
and the output from interactive session is:
PS C:\Users\920280\OneDrive - Cognizant\Documents> python.exe -i person.py
>>> help(person)
Help on class person in module __main__:
class person(builtins.object)
| person(name)
|
| A new person is born
|
| Methods defined here:
|
| __init__(self, name)
| Give the person a name
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
>>> help(person.__init__)
Help on function __init__ in module __main__:
__init__(self, name)
Give the person a name
>>>
CLI Arguments
Use the argparse
Library to read cli arguments.
import argparse
def read_cli_arguments():
parser = argparse.ArgumentParser()
parser.add_argument("-f", "--file", help="Execute on this File.", type=str)
args = parser.parse_args()
argv = vars(args)
argv
is a dictionary like {'file' : 'CliArgument'}.
args` is the Namespace for all Cli Arguments.
String Formatting
Filling {}
with the variable `Name'
Name = "Jacen Solo"
this_string = "Hello World I am {}".format(Name)
More complex solution by definen the positional arguments of the format function
age = 32
Name = "Nom Anor"
this_string = "Hello World. I am {1} and {0} years alive.".format(age, Name)
This puts Name
in {1}
because it is the second positional argument (0-based indexing) and age
in {0}
.
IF-Else Oneliner
this_dict['key'] = other_dict['key'] if other_dict['key'] else this_dict['key']
Read this_dict['key']
is other_dict['key']
if that key exists (evalutes to true
) otherwise keep the origial value.
###Logging the logger object takes several arguments, the first on is the message that needs to be one string. Not like the print function that automatically concatenates its arguments to a string
import logging
LOGGING_LEVEL = os.environ["LOGGING_LEVEL"]
logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(LOGGING_LEVEL)
logger.info('This will get logged'+' this')
Last updated