Publié le 22 mars 2025
Liste de bouts de code utiles
Lecture 3 min
from datetime import datetime
Date => chaîne : datetime.now().strftime(format)
Chaîne => date : datetime.strptime(date_str, format)
Intervale en secondes : interval_seconds = interval.total_seconds()
Exemples de formats de date :
%m/%d/%Y %H:%M:%S
: 01/02/2025 10:05:06%Y%m%d%H
: 20250102%d %B %Y %H:%M
: 2 January 2025 10:05Codes :
%a
: Weekday as Sun, Mon%A
: Weekday as full name as Sunday, Monday%w
: Weekday as decimal no as 0,1,2…%d
: Day of month as 01,02%b
: Months as Jan, Feb%B
: Months as January, February%m
: Months as 01,02%y
: Year without century as 11,12,13%Y
: Year with century 2011,2012%H
: 24 Hours clock from 00 to 23%I
: 12 Hours clock from 01 to 12%p
: AM, PM%M
: Minutes from 00 to 59%S
: Seconds from 00 to 59%f
: Microseconds 6 decimal numbersCorriger les problèmes de timezone : date.tz_convert(None)
Remplissage par le début avec des 0 : cp.zfill(5)
Suppression des espaces avant/après : text.strip()
Minuscule : text.lower()
Commence par : text.startswith('is')
Décodage UTF8 :
if "\\u" in text:
text = text.encode().decode('unicode-escape')
Supprimer les accents :
def remove_accents(texte):
texte_normalise = unicodedata.normalize('NFD', texte)
texte_without_accents = ''.join(c for c in texte_normalise if unicodedata.category(c) != 'Mn')
return texte_without_accents.replace('\s+', ' ')
\b
permet de délimiter un ensemble de \w
.*?
permet de s’arrêter dès que possible0
est l’ensemble de la capture, ensuite c’est les groupes capturés par des ()
Extraire une portion :
def extract_numbers(text):
regex = r'\b\d+\b'
results = re.search(regex, text)
if results:
return results.group(0)
else:
return None
Extraction avec variable (rf
) :
match = re.search(rf'list_id":{uid}.+?,"user_id":"(.*?)"', source)
Remplacement avec un dictionnaire :
import re
replaces = {'key': 'value'}
regex = re.compile("|".join(re.escape(k) for k in replaces))
text = regex.sub(lambda x: replaces[x.group(0)], text)
Map : array = [r for r in tab]
Filtrer:
tab_filtered = list(
filter(
lambda c: c not in ['value'],
tab
)
)
All : all(x > 0 for x in array)
All numpy : (np.array([1, 2, 3, 4, 5]) > 0).all()
Any : any(x > 0 for x in array)
Any numpy : (np.array([1, 2, 3, 4, 5]) > 0).any()
Parcourir un dictionnaire : for key, value in dictionnaire.items():
import os
if os.path.exists(file_path):
file.write('')
Téléchargement d’un fichier distant :
import urllib.request
urllib.request.urlretrieve(url, path)
import requests
response = requests.get(
'',
params={},
headers={
'Authorization': '',
'Content-Type': 'application/json'
}
)
# Lance une exception si status_code != 200
response.raise_for_status()
if response.status_code == 200:
json = response.json()
binary = response.text
import pgeocode
geo = pgeocode.Nominatim('fr')
infos = geo.query_postal_code(code_postal)
return infos['state_name']
import xml.etree.ElementTree as Xet
xmlparse = Xet.parse('data.xml')
root = xmlparse.getroot()
nodes = root[2]
nodes = node.find("tag_name")
text = node.text