6 scripts Python de base mais utiles pour vous aider à démarrer
Sommaire
Liens rapides
-
Générateur de mots de passe aléatoire
Python est l'une des langues les plus accessibles à apprendre, grâce à son approche d'abord orientée objet et à sa syntaxe minimale. La bibliothèque standard comprend de nombreux modules utiles que vous pouvez utiliser pour écrire toutes sortes de programmes, grands et petits.
Les scripts ici sont tous minuscules, avec un accent étroit sur une tâche utile. Vous pouvez les utiliser non seulement pour les activités quotidiennes, mais aussi pour construire et étendre les fonctionnalités supplémentaires.
1
Renvoi de fichiers par lots
Renommer un ensemble de fichiers peut être une tâche difficile. Si vous vous souvenez de votre syntaxe Shell, vous pouvez écrire une commande à la volée, ou vous pouvez compter sur un programme tiers comme Rename.
Ce programme Python simple renomance tous les fichiers de votre répertoire actuel qui contiennent du texte spécifique, en remplaçant ce texte par un modèle donné. Vous pouvez l'utiliser, par exemple, pour modifier un ensemble d'extensions de « .htm » à « .html ».
import os, sysif len(sys.argv) < 3:
sys.exit("usage: " + sys.argv(0) + " search replace")
for filename in os.listdir("."):
new_filename = filename.replace(sys.argv(1), sys.argv(2))
if new_filename != filename:
os.rename(
os.path.join(".", filename),
os.path.join(".", new_filename),
)
Le script importe quelques modules de bas niveau utiles: OS et SYS. Il utilise immédiatement ce dernier pour vérifier le nombre d'arguments (sys.argv) et sort si trop peu sont donnés.
Le principal pour Loop itère ensuite dans tous les noms de fichiers du répertoire actuel (.). La méthode de remplacement de la classe String tente ensuite de remplacer le premier argument avec la seconde.
Un contrôle final pour voir si le nom de fichier a changé est ensuite suivi d'un appel à os.rename () qui met à jour le fichier si nécessaire.
Ce script manque de traitement des erreurs complet, et vous devez limiter votre utilisation pour la recherche de chaînes et remplacer simples. Soyez toujours prudent avec les opérations par lots qui peuvent affecter de nombreux fichiers.
2
Image Mintige Maker
Le script à quatre lignes suivant montre la puissance d'une bibliothèque pratique, dans ce cas, oreiller. Cette fourche de la bibliothèque d'imagerie Python possède de nombreuses fonctions de traitement d'image, pour prendre en charge tout, des scripts simples aux éditeurs graphiques à part entière.
Vous devrez installer la bibliothèque d'oreillers avant de pouvoir exécuter ce script. Brew install oreiller Bien fonctionné pour moi sur macOS, mais vous pouvez également essayer PIP ce que la page d'installation recommande.
Le script utilise trois méthodes du module d'image pour ouvrir un fichier, créer une vignette et l'enregistrer dans un deuxième fichier:
from PIL import Image
image = Image.open("image.jpg")
image.thumbnail((500, 500))
image.save("image_thumb.jpg")
Notez comment la fonction miniature prend un seul argument, qui est un tuple. Il créera une image avec le même rapport que l'original, avec une largeur et une hauteur maximales selon les dimensions que vous fournissez.
En soi, cela est limité car le nom de fichier et les dimensions sont codés en dur. Vous pouvez étendre ses fonctionnalités en passant ces valeurs à la place comme arguments en ligne de commande, en utilisant une deuxième version du script qui n'est pas beaucoup plus grande:
from PIL import Image
import sysif len(sys.argv) < 4:
sys.exit("usage: " + sys.argv(0) + " image width height")
image = Image.open(sys.argv(1))
image.thumbnail((int(sys.argv(2)), int(sys.argv(3))))
image.save("thumb.jpg")
Notez que le nom de fichier de miniatures final est toujours codé en dur. En tant qu'extension supplémentaire, vous pouvez générer un nom de fichier basé sur l'original ou accepter un quatrième paramètre de ligne de commande.
3
Serveur Web simple
Un serveur Web de base peut être très utile; J'en utilise un pour parcourir et accéder rapidement aux fichiers sur mon ordinateur local. Il peut également s'agir d'un outil pratique pour le développement Web.
Peu de serveurs Web sont aussi simples que ceci:
import http.server, socketserverport = 8001
with socketserver.TCPServer(
("", port), http.server.SimpleHTTPRequestHandler
) as httpd:
print(f"Serving at port {port}")
httpd.serve_forever()
Les modules HTTP.Server et Socketserver font la plupart du travail ici. Une instance TCPSServer générique est passé un port et un simplehttpRequestHandler qui sert les fichiers du répertoire actuel sur HTTP. La méthode Serve_forever (qui est héritée d'une classe socketserver.baseserver) gère les demandes jusqu'à ce que la méthode Shutdown () soit appelée.
Comme la documentation de Python prévient, le module HTTP.Server manque de sécurité appropriée et n'est pas pour une utilisation en production.
Bien que ce ne soit qu'un serveur de jouets, il est idéal pour un usage personnel et sa simplicité est sans égal.
4
Générateur de mots de passe aléatoire
Que ce soit pour un nouveau compte utilisateur, un formulaire Web ou votre propre travail de développement, un mot de passe aléatoire est souvent demandé. Vous devriez probablement utiliser un gestionnaire de mots de passe pour le faire, mais ce n'est pas toujours approprié. Avec votre propre script, vous pouvez contrôler les détails exacts et les affiner en fonction de vos besoins.
import string, randomdef main(length: int) -> str:
characters = string.ascii_letters + string.digits + string.punctuation
return "".join(random.choice(characters) for i in range(length))
print(main(32))
Ce script utilise la chaîne et les modules aléatoires pour générer un mot de passe aléatoire en seulement cinq lignes de code. Le module String a des constantes utiles contenant des ensembles de caractères individuels comme des chiffres et des lettres. En combinant ces derniers et en choisissant un nombre au hasard, le script concatène une série de caractères pour produire le mot de passe final.
5
Crypto Prix Checker
Ce script montre la puissance d'une API propre et simple. L'API qu'il utilise – de Coingecko – se réduit sur HTTP, il est donc très portable et facile à prendre en charge.
Avant d'exécuter ce script, consultez la réponse API du point de terminaison qu'il utilise, / simple / prix. Vous devriez voir qu'il renvoie des données formées par JSON avec des entrées pour les devises transmises dans le paramètre IDS.
import urllib.request, jsondef get_crypto_prices():
url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,litecoin&vs_currencies=usd"
ufile = urllib.request.urlopen(url)
text = ufile.read()
return json.loads(text)
crypto_prices = get_crypto_prices()
for coin, value in crypto_prices.items():
print(f"{coin.capitalize()}: ${value('usd')}")
Le module urllib.request comprend une méthode URLOpen () qui récupère le contenu d'une URL et renvoie un objet HttpResponse. Lire son texte et le passer à la méthode json.loads () construit un objet de dictionnaire équivalent.
JSON est un format très populaire pour les API Web car sa syntaxe simple et son format lisible par l'homme facilitent l'analyse et le test.
6
Générateur de table ASCII
Le jeu de caractères ASCII est une collection de 128 caractères communs de la langue anglaise, utilisé dans divers contextes informatiques. La plupart des langages de programmation prennent en charge la conversion des codes ASCII en caractères individuels, et vice versa, mais il est parfois utile de voir tous les caractères ASCII à la fois.
for i in range(32, 128):
print("{:03d}".format(i) + " " + chr(i), end=" ") if (i - 1) % 10 == 0:
print()
print()
Ce script imprime un tableau contenant tous les caractères ASCII de 32 à 127, chacun à côté de son point de code:
La première chose à noter est de savoir comment la plage de fonction Python intégrée () traite ses paramètres; Il itère à partir du premier, mais s'arrête avant qu'il n'atteigne la seconde. Dans une langue comme JavaScript, l'équivalent de Loop ressemblerait à ceci:
for (i = 0; i < 128; i++) { ... }
La plupart des travaux restants se trouvent dans la ligne print () et comprennent la mise en forme de chaque point de code comme une largeur fixe de trois places. La fonction chr () renvoie un caractère compte tenu de son code ASCII.
Une propriété utile d'ASCII, que ce tableau démontre, est que le code de chaque lettre minuscule (AZ) est exactement 32 supérieur à son équivalent majuscule.
L'astuce restante consiste à imprimer un caractère Newline au point approprié, de sorte que la sortie est bien divisée en lignes. Cela utilise l'opérateur% pour vérifier le reste de l'indice de plage lorsqu'il est divisé par 10, garantissant dix caractères par ligne.
En rapport
Comment faire un bel art ascii avec ces outils sympas
Dans le merveilleux petit monde du plus ancien format d'art numérique.