Python comparé à BASH

Cela fait environ trois semaines que j’étudie bash et il est très facile à apprendre car il ne s’agit en fait que d’entrées en ligne de commande. J’ai décidé de passer maintenant au python, mais j’ai tout le temps perdu à essayer de l’apprendre. Ma question est en python, tout semble tourner autour des nombres, des listes, des variables, etc. Tandis que bash semble être beaucoup plus simple avec les commandes. Je ne trouve aucun exemple en python où il existe un moyen de déplacer des fichiers, de modifier des répertoires ou d’autres choses du même genre. Je me sens déjà trop habitué à apprendre le python. Quelqu’un peut-il s’il vous plaît expliquer tout cela à moi.

Bash n’est pas un langage de programmation, mais un shell destiné à saisir rapidement des commandes et à les exécuter. Par conséquent, vous exécutez d’autres commandes pour votre travail (par exemple, mv déplace des fichiers et des répertoires). Les variables dans Bash sont limitées et, comme les commandes sont toutes des chaînes, il n’y a aucune raison d’être très ssortingct à ce sujet. (il est cependant possible de forcer des types, voir help declare ).

Python, en revanche, est un langage de programmation plus étendu comportant davantage de fonctionnalités. Au lieu d’exécuter d’autres programmes, vous utilisez des fonctions intégrées ou d’autres fonctionnalités issues de modules (bibliothèques dans d’autres langues). Pour un tutoriel de base sur les entrées / sorties en Python, voir http://docs.python.org/tutorial/inputoutput.html . Il est intéressant de lire tout le tutoriel lui-même si vous souhaitez commencer à programmer en Python.

Python est un langage de programme; et comme tous les autres langages de programmation, il est conçu pour décrire le processus et les données. La plupart de vos questions traitent de l’API du système d’exploitation dans le module os , par exemple, os.chdir() et os.rename() (pour la commande UNIX mv ).

Le shell est un environnement d’exploitation conçu pour vous permettre d’accéder facilement au système d’exploitation à différents niveaux (fichiers, processus, etc.). Il inclut des structures de programmation telles que des variables, des boucles et des conditions. Il s’agit donc d’un langage de programmation, mais il n’a pas été conçu pour en être un: il a évolué. Vous pouvez faire des choses assez étonnantes avec un script shell – j’ai déjà écrit un système de suivi des appels qui traitait 60 000 demandes par mois. Mais il a aussi des limites qu’un langage informatique peut mieux gérer.

Par exemple, vous pouvez écrire un navigateur Web dans Bash, mais ce serait inefficace, en particulier lorsque vous essayez de télécharger simultanément les pages html, css et javascript et de gérer les entrées de l’utilisateur. Un langage de programmation tel que Python, qui a access aux threads, permettrait de gérer cela plus efficacement.

Bien que Python ait également un “shell”, il n’est pas facile à utiliser pour accéder au système d’exploitation. Mais c’est utilisable. Par exemple, la commande shell mv * otherdirectory serait écrite en Python sous la forme suivante:

 import os, glob for fname in glob.glob('*'): os.rename(fname, 'otherdirectory') 

Ou plus compactement:

 import os, glob [os.rename(fname, 'otherdirectory') for fname in glob.glob('*')] 

La plupart des tutoriels pour les langues veulent que vous compreniez d’abord la langue, puis comment elle s’interface avec le système d’exploitation. Pour un shell, vous devez d’abord comprendre comment il interagit avec le système d’exploitation.