J'entrepose ici mes découvertes linux, bash, python et java que je souhaite partager et mettre de côté...
Affichage des articles dont le libellé est python. Afficher tous les articles
Affichage des articles dont le libellé est python. Afficher tous les articles
mercredi 2 décembre 2020
vendredi 13 novembre 2020
python, distance de levenshtein
La distance de Levenshtein est une distance, au sens mathématique du terme, donnant une mesure de la différence entre deux chaînes de caractères. Elle est égale au nombre minimal de caractères qu'il faut supprimer, insérer ou remplacer pour passer d'une chaîne à l'autre.
Exemple:
Source: https://fr.wikipedia.org/wiki/Distance_de_Levenshtein
Exemple:
Source: https://fr.wikipedia.org/wiki/Distance_de_Levenshtein
jeudi 5 mars 2015
python, connaitre le dernier jour d'un mois...
Il est possible de déterminer facilement le dernier jour d'un mois.
Pour cela on peut utiliser le module calendar (bibliothèque standard) qui est assez méconnu.
Le résultat indique pour Février 2015:
- que le mois comporte 28 jours
- que le premier jour du mois est un dimanche (0=Lundi, 1=Mardi, ... 6=Dimanche)
Pour cela on peut utiliser le module calendar (bibliothèque standard) qui est assez méconnu.
Le résultat indique pour Février 2015:
- que le mois comporte 28 jours
- que le premier jour du mois est un dimanche (0=Lundi, 1=Mardi, ... 6=Dimanche)
jeudi 19 février 2015
samedi 20 septembre 2014
mardi 1 juillet 2014
Python, retirer les accents d'une chaine
python accent accents retirer supprimer unicode unicodedata
mercredi 27 février 2013
Git, fichier .netrc
Il y a plusieurs mois, j'ai découvert l'existence du fichier .netrc et l'utilisation que l'on peut en faire.
Dans le cadre de l'un de mes projets, j'y ai stocké les informations de connexion vers le wiki de l'entreprise à des fins de scripting.
En python, la lecture se fait simplement en utilisant le module netrc.
Aujourd'hui, je viens de découvrir que git peut l'utiliser afin d'éviter d'avoir à retaper son login et mot de passe à chaque push...
Ce fichier me plaît bien : centralisation et simplicité :)
Dans le cadre de l'un de mes projets, j'y ai stocké les informations de connexion vers le wiki de l'entreprise à des fins de scripting.
En python, la lecture se fait simplement en utilisant le module netrc.
Aujourd'hui, je viens de découvrir que git peut l'utiliser afin d'éviter d'avoir à retaper son login et mot de passe à chaque push...
Ce fichier me plaît bien : centralisation et simplicité :)
jeudi 18 octobre 2012
lundi 15 octobre 2012
python, lire et écrire des fichiers xls
Si l'on a des fichiers Excel que l'on souhaite lire ou écrire, on peut utiliser les paquets xlrd (reader) et xlwt (writer).
Voici un petit exemple de ce que l'on peut faire :
La page suivante propose des exemples clairs et rapides pour bien commencer :
http://www.dev-explorer.com/articles/excel-spreadsheets-and-python
Voici un petit exemple de ce que l'on peut faire :
La page suivante propose des exemples clairs et rapides pour bien commencer :
http://www.dev-explorer.com/articles/excel-spreadsheets-and-python
mercredi 10 octobre 2012
python, faire en sorte que stdin/stdout lisent et écrivent en binaire
J'ai écrit un petit programme qui s'inspire de cut en python.
La lecture et l'écriture pouvant se faire sur l'entrée/sortie standard (sources ucut), j'avais des problèmes de "'ascii' codec can't decode byte"...
Pour y remédier, j'ai "transformé" les flux standard (mode texte) en flux binaires de la manière suivante :
La lecture et l'écriture pouvant se faire sur l'entrée/sortie standard (sources ucut), j'avais des problèmes de "'ascii' codec can't decode byte"...
Pour y remédier, j'ai "transformé" les flux standard (mode texte) en flux binaires de la manière suivante :
python, binary, os, fileno
lundi 23 juillet 2012
python, obtenir la liste des fichiers .java
Pour récupérer la liste des .java dans une arborescence et sa sous-arborescence, on peut utiliser le code suivant :
import fnmatch
import os
matches = []
for root, dirnames, filenames in os.walk('/path/to/the/directory'):
for filename in fnmatch.filter(filenames, '*.java'):
matches.append(os.path.join(root, filename))
vendredi 20 juillet 2012
python, ouvrir un fichier en utf8
Pour ouvrir un fichier en utilisant un encodage particulier, il est possible de passer par le module codecs...
with codecs.open('the_file.csv', 'r', 'utf8') as f:
l = f.readline()
...
lundi 16 juillet 2012
python, unicode...
>>> unicodedata.name(u"é")
'LATIN SMALL LETTER E WITH ACUTE'
>>> print u"e accent aigu : \N{LATIN SMALL LETTER E WITH ACUTE}"
e accent aigu : é
python, bash et encoding...
En python, lorsque la sortie n'est pas de type tty, l'encoding est "ascii" ce qui provoque des erreurs sur les caractères accentués. La solution est d'exporter la variable PYTHONIOENCODING qui définit l'encoding à utiliser.
$ python a.py
é
$ python a.py | cat
Traceback (most recent call last):
File "a.py", line 3, in
print u"\xe9";
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0:
ordinal not in range(128)
$ export PYTHONIOENCODING=utf-8
$ python a.py | cat
é
$
Une autre solution est de changer l'encoding de stdout...
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import codecs
import locale
sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)
print u"é"
jeudi 24 mai 2012
python, marre des accents en java : remplacez les par de l'unicode !
$ cat tounicode.py
#!/usr/bin/python
import re
import sys
s = sys.argv[1].decode('utf8')
print re.sub('\\\\x', '\\u00', re.sub('\'$', '', re.sub('^u\'', '', repr(s))))
$ python tounicode.py "salut beauté"
salut beaut\u00e9
vendredi 4 mai 2012
python, conversion d'un fichier d'iso8859 en utf8
#!/bin/python
import sys
if len(sys.argv) != 3:
print 'usage: python iso8859toutf8.py [infile] [outfile]'
sys.exit(0)
with open(sys.argv[2], 'w') as fout:
with open(sys.argv[1], 'r') as fin:
data = fin.read().decode('iso8859')
while data:
fout.write(data.encode('utf8'))
data = fin.read().decode('iso8859')
mardi 24 avril 2012
python, envoi d'un mail avec un fichier en attachement
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email import Encoders
msg = MIMEText('le texte du message')
msg['From']='crontab-do-not-reply@example.com'
msg['To']='destinataire1@example.com,destinataire2@example.com'
msg['Subject']='le titre du message'
texte = MIMEText(u'Le \xe9but du message', 'plain', 'utf-8')
msg.attach(texte)
content = MIMEBase('text', 'csv')
content.set_payload(csvbuffer)
Encoders.encode_base64(content)
content.add_header('Content-Disposition', 'attachment', filename='fichier.csv')
msg.attach(content)
smtp = smtplib.SMTP(mailhost)
smtp.sendmail('crontab-do-not-reply@example.com', ['destinataire1@example.com',
'destinataire2@example.com'], msg.as_string())
smtp.quit()
python, envoi d'un mail texte
import smtplib
from email.MIMEText import MIMEText
msg = MIMEText('le texte du message')
msg['From']='crontab-do-not-reply@example.com'
msg['To']='destinataire1@example.com,destinataire2@example.com'
msg['Subject']='le titre du message'
smtp = smtplib.SMTP(mailhost)
smtp.sendmail('crontab-do-not-reply@example.com', ['destinataire1@example.com',
'destinataire2@example.com'], msg.as_string())
smtp.quit()
mardi 3 avril 2012
Python, parseur XML
BeautifulSoup est une petite bibliothèque fort sympathique que j'ai utilisée pour parser et publier du contenu dans des pages Wiki... Le tout en python :)
Elle fait sa "soupe" pour parser et faire économiser des heures aux pauvres développeurs que nous sommes !
Site de BeautifulSoup
Elle fait sa "soupe" pour parser et faire économiser des heures aux pauvres développeurs que nous sommes !
Site de BeautifulSoup
Inscription à :
Articles (Atom)