Expert Python
J'ai une confession à faire.
J'utilise toujours Perl. Régulièrement. Mais surtout comme un outil de ligne de commande. Est-ce une raison? ou une excuse?
Lorsque j'ai commencé à utiliser Python régulièrement, j'ai essayé de remplacer mon utilisation de Perl.
Rien contre Perl, je voulais juste me forcer à utiliser Python pour m'aider à apprendre la langue.
J'ai encore pas mal d'habitudes en Perl difficiles à briser.
Le problème est que certaines choses sont tellement faciles en Perl (si vous l’avez déjà appris), et pas si facile (autant que je sache) en Python.
Voici un exemple.
Lorsque je commence à écrire ce que je sais être un long post de blog, je commence par une introduction, suivie d’une table des matières. La table des matières est vraiment un aperçu de ce que je veux écrire. Je veux l'écrire d'abord pour que le flux de la publication ait un sens avant Je commence à écrire le contenu.
Lorsque je suis satisfait du contenu de la table des matières, je souhaite le convertir en plusieurs en-têtes h2.
Depuis que j'utilise markdown, cela ressemble un peu à ceci:
* [first section header](#anchor_to_first_section)
* [second section](#seconde)
…
* [[[[premier section entête](#anchor_to_first_section) * [[[[seconde section](#seconde) ... |
Ce que je veux, c'est jeter ce code dans quelque chose qui va cracher:
premier en-tête de section
deuxième section
<h2 identifiant="anchor_to_first_section">premier section entête</h2> <h2 identifiant="seconde">seconde section</h2> |
Peut-être qu’il ya un moyen facile de faire cela avec Python, mais je ne le sais pas.
J’utilise habituellement Perl, car c’est ce que je sais utiliser depuis la ligne de commande.
Ma solution Perl.
Je sélectionne la table des matières dans mon éditeur et copie dans la mémoire tampon de copie, puis la colle sur la ligne de commande dans une commande echo et la redirige vers un petit script Perl, comme suit:
> echo '* [first section header](#anchor_to_first_section)
* [second section](#seconde)
'| perl -pe 's / * [(.*)] (# (. *) ) /
1 $
/ '
premier en-tête de section
deuxième section
> écho '* [first section header](#anchor_to_first_section) * [second section](#seconde) ' | perl –pe est / * [(.*)](#(.*)) / 1 $/ ' <h2 identifiant="anchor_to_first_section">premier section entête</h2> <h2 identifiant="seconde">seconde section</h2> |
Je sais que cela ressemble à un gobbledygook.
Mais au moment d’écrire l’expression régulière, c’est parfaitement logique et je n’y pense pas trop.
Après avoir exécuté la commande, je sélectionne le résultat et le copie / le colle dans mon éditeur.
Ce n'est pas vraiment un processus efficace, mais c'est mieux que de taper tout moi-même, surtout pour les tables des matières longues.
Mon histoire avec Perl et Python.
J'ai commencé à utiliser Perl probablement en 1992, je pense (à l'époque où le livre sur les chameaux était petit). J'ai dû l'apprendre pour certaines classes de l'université, l'utiliser pour les scripts Web cgi, puis continuer à l'utiliser professionnellement, principalement comme langage de script si-c'est-trop-complexe-pour-un-bash-ksh-script. J'ai également appris à l'utiliser comme un outil de ligne de commande meilleur que sed. J'ai construit quelques outils internes avec Perl et tk (mais… Beurk!).
J'ai commencé à utiliser Python probablement en 2001, au travail. Les scripts de test de programmation à distance pour les instruments pour lesquels j'ai écrit du code ont été écrits en Python, avec un programme d'exécution de test personnalisé. Mon utilisation de Python a évolué depuis et elle a supplanté de nombreux projets pour lesquels j’aurais déjà choisi Perl, c ++ ou bash. Surtout si l'outil nécessitait une interface graphique quelconque, car wxPython est relativement facile à utiliser.
Cependant, Perl avait presque une décennie d'avance dans mes neurones, et je pense que certains peuvent être câblés maintenant.
C’est peut-être une des raisons pour lesquelles j’utilise les liaisons vim et les mappages de clés vim dans du texte sublime. Vraiment, ce n’est plus moi qui frappe la moitié des clés, c’est mes doigts. Et ils ont appris vim il y a très très longtemps. (En fait, juste après avoir essayé d'écrire un plugin pour Emacs.)
Aucune suggestion?
Je n’ai pas pris le temps d’apprendre à utiliser Python en tant qu’outil de ligne de commande.
Est-ce que quelque chose comme l'exemple ci-dessus est possible en Python?
[ad_2]