web-dev-qa-db-fra.com

Python Comparé à BASH

Cela fait environ trois semaines que j'étudie bash et il est très facile à apprendre, car ce ne sont que des entrées en ligne de commande. J'ai décidé de passer maintenant à python mais j'ai été perdu tout le temps à 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 pas d'exemple dans 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 pour moi.

6
LurkDog

Bash n'est pas un langage de programmation, mais un shell destiné à entrer rapidement des commandes et à les exécuter. Par conséquent, vous exécutez d’autres commandes pour votre travail (par exemple, mv déplace les fichiers et les 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 strict à 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.

6
Lekensteyn

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 vers le système d’exploitation dans le module os, par exemple os.chdir() et os.rename() (pour la commande UNIX mv).

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 pourriez é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 accès aux threads, permettrait de gérer cela plus efficacement.

Bien que Python possède é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 sera écrite en Python comme:

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.

3
Arcege