Scripts Python : Créer un html avec des photos géolocalisés sur une map
# Étape 1: Installer folium
# Ouvrez un terminal et exécutez : pip install folium
from PIL import Image
import exifread
# Étape 2: Importer folium
import folium
import os
# Étape 3: Créer une carte centrée sur une position spécifique (par exemple, Paris)
# Latitude et Longitude de Paris
def get_geolocation(image_path):
with open(image_path, 'rb') as image_file:
tags = exifread.process_file(image_file)
lat = tags.get('GPS GPSLatitude')
lat_ref = tags.get('GPS GPSLatitudeRef')
lon = tags.get('GPS GPSLongitude')
lon_ref = tags.get('GPS GPSLongitudeRef')
if lat and lon and lat_ref and lon_ref:
lat_decimal = get_decimal_from_dms(lat.values, lat_ref.values)
lon_decimal = get_decimal_from_dms(lon.values, lon_ref.values)
return [lat_decimal, lon_decimal]
else:
return None
def mymap():
# Créer une carte
mymap = folium.Map(zoom_start=10)
chemimg = "C:/Users/fanny/OneDrive/Bureau/cours/Photogeoloc/" #utilisateur va rentrer chemin d un dossier
listfichier = os.listdir(chemimg)
for chem in listfichier:
get_geolocation(chemimg+chem)
print(get_geolocation(chemimg+chem),chem)
# Optionnel: Ajouter un marqueur
html = '<'img style="max-width:200px" src="'+chemimg+chem+'>' #modifier les ''
localisation = get_geolocation(chemimg+chem)
if localisation != None: # si on a une localisation on a un marker
folium.Marker(location=localisation, popup=html).add_to(mymap)
# Étape 4: Enregistrer la carte dans un fichier HTML
tiles='https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
attr='Esri'
mymap.save("mymap.html")
def get_decimal_from_dms(dms, ref):
degrees = dms[0].num / dms[0].den
minutes = dms[1].num / dms[1].den
seconds = dms[2].num / dms[2].den
decimal = degrees + (minutes / 60.0) + (seconds / 3600.0)
if ref in ['S', 'W']:
decimal = -decimal
return decimal
mymap()
for i in range(5):
print(i)
Scripts Python : Redimensionner des images
from PIL import Image
import os
def compress(chemimg, nivcompr, img): #modele
# Ouvrir l'image
image = Image.open(chemimg)
largeur, hauteur = image.size
ratio = largeur/hauteur
newlargeur = largeur
newhauteur = hauteur
if largeur > 1800:
#diviser en gardant que l unité = //
newlargeur = 1200
newhauteur = int(1200/ratio)
image = image.resize((newlargeur, newhauteur)) #
#sauvegarder img
image.save(img, optimize=True, quality=nivcompr)
if __name__ == "__main__":
chemimg = "C:\\Users\\fanny\\OneDrive\\Bureau\\cours\\image redim\\" #utilisateur va rentrer chemin d un dossier
listfichier = os.listdir(chemimg)
for img in listfichier:
try:
compress(chemimg + img, 85,img) #utiliser le modele avec les donnees qu on veut dedans
except Exception as err:
print(str(err))
print("echec de la compression "+img)
Scripts Python : Se connecter à une API
import requests
# 66b2684b9ccd1921573535mnt270bf6
# url de l'API des photos de chien
url = "https://dog.ceo/api/breeds/image/random"
# on fait la requête de type GET sur l'URL et on récupère la réponse de la requête
response = requests.get(url)
print(response.text)
Scripts Python : Manipuler des fichiers
from PIL import Image
import os
def compress(chemimg, nivcompr, img): #modele
# Ouvrir l'image
image = Image.open(chemimg)
largeur, hauteur = image.size
ratio = largeur/hauteur
newlargeur = largeur
newhauteur = hauteur
if largeur > 1800:
#diviser en gardant que l unité = //
newlargeur = 1200
newhauteur = int(1200/ratio)
image = image.resize((newlargeur, newhauteur)) #
#sauvegarder img
image.save(img, optimize=True, quality=nivcompr)
if __name__ == "__main__":
chemimg = "C:\\Users\\fanny\\OneDrive\\Bureau\\cours\\image redim\\" #utilisateur va rentrer chemin d un dossier
listfichier = os.listdir(chemimg)
for img in listfichier:
try:
compress(chemimg + img, 85,img) #utiliser le modele avec les donnees qu on veut dedans
except Exception as err:
print(str(err))
print("echec de la compression "+img)
Scripts Python : Trouver et déplacer une extension de fichier dans une arborescence de dossier
""" Script qui cherche dans tous les dossiers les .bak"""
import os # Module pour interagir avec le système de fichiers
import glob # Module pour rechercher des fichiers selon un motif spécifique
import shutil
def find_bak_files(directory):
"""
Recherche et affiche tous les fichiers .bak dans le répertoire donné et ses sous-répertoires.
Args:
directory (str): Le chemin du répertoire où rechercher les fichiers .bak.
Returns:
list: Une liste des chemins des fichiers .bak trouvés.
"""
bak_files = [] # Liste pour stocker les chemins des fichiers .bak trouvés
# Utiliser os.walk pour parcourir les répertoires et sous-répertoires
for root, dirs, files in os.walk(directory):
# root: chemin du répertoire courant
# dirs: liste des sous-répertoires dans le répertoire courant
# files: liste des fichiers dans le répertoire courant
# Construire le motif de recherche pour les fichiers .bak dans le répertoire actuel
search_pattern = os.path.join(root, '*.bak')
# os.path.join combine le chemin du répertoire courant avec le motif '*.bak'
# Utiliser glob pour trouver tous les fichiers .bak correspondant au motif
found_files = glob.glob(search_pattern)
# glob.glob retourne une liste de fichiers correspondant au motif
# Ajouter les fichiers trouvés à la liste bak_files
bak_files.extend(found_files)
# Afficher les fichiers trouvés
for bak_file in bak_files:
print(f'Trouvé: {bak_file}')
return bak_files
def deplacebak(bak_files2, destination):
compteur = 1
# Déplacer chaque fichier
for fichier in bak_files2:
# Obtenir le nom du fichier
nom_fichier = os.path.basename(fichier)
# Chemin complet de destination
chemin_destination = os.path.join(destination, str(compteur)+"_"+nom_fichier)
# Déplacer le fichier
shutil.move(fichier, chemin_destination)
compteur = compteur + 1
print(f'Le fichier {fichier} a été déplacé vers {chemin_destination}')
# Exemple d'utilisation
directory = 'C:\\Users\\fanny\\OneDrive\\Bureau\\Supression_bak\\Dossier_test' # Remplacez par le chemin réel de votre répertoire Suppression_bak
bak_files2 = find_bak_files(directory)# Appeler la fonction avec le chemin du répertoire
destination = 'C:\\Users\\fanny\\OneDrive\\Bureau\\Deplacementbak'
deplacebak(bak_files2, destination)