Python в сравнении с BASH

Python в сравнении с BASH

Я изучал bash последние три недели или около того, и его очень легко изучить, так как он в основном состоит только из ввода командной строки. Я решил сейчас перейти на python, но я все время терялся, пытаясь его изучить. Мой вопрос по python, он, кажется, все вращается вокруг чисел, списков, переменных и т. д. Хотя bash кажется гораздо более прямолинейным с командами. Я не могу найти ни одного примера в python, где есть способ перемещать файлы, менять каталоги или что-то подобное. Я чувствую, что я уже слишком привык к bash, чтобы изучать python. Может ли кто-нибудь объяснить мне что-нибудь из этого.

решение1

Bash — это не язык программирования, а оболочка, предназначенная для быстрого ввода команд и их выполнения. Поэтому вы запускаете другие команды, которые выполняют свою работу (например, mvперемещаете файлы и каталоги). Переменные в Bash ограничены, и поскольку все команды — это строки, нет причин быть очень строгими с ними. (хотя можно принудительно задать типы, см. help declare).

С другой стороны, Python — более обширный язык программирования с большим количеством языковых возможностей. Вместо того, чтобы выполнять другие программы, вы используете встроенные функции или другие функции из модулей (библиотек на других языках). Для базового руководства по вводу/выводу в Python см.http://docs.python.org/tutorial/inputoutput.html. Весь учебник стоит прочитать, если вы хотите начать программировать на Python.

решение2

Python — это язык программирования; и как и все другие языки программирования, он предназначен для описания процессов и данных. Большинство ваших вопросов касаются API к операционной системе в модуле os, например, os.chdir()и os.rename()(для команды UNIX mv).

Оболочка — это операционная среда, призванная предоставить вам легкий доступ к операционной системе на различных уровнях (файлы, процессы и т. д.). Она включает в себя программные конструкции, такие как переменные, циклы и условные операторы, так что в этом смысле это язык программирования, но он не был разработан для этого — он эволюционировал. Вы можете делать довольно удивительные вещи с помощью скрипта оболочки — однажды я написал систему отслеживания вызовов, которая обрабатывала 60 тыс. запросов в месяц. Но у нее также есть ограничения, с которыми компьютерный язык справляется лучше.

Например, вымогнаписать веб-браузер на Bash, но это будет неэффективно, особенно при попытке одновременной загрузки страниц html, css и javascript и обработки пользовательского ввода. Язык программирования, такой как Python, который имеет доступ к потокам, справился бы с этим более эффективно.

Хотя в Python также есть "shell", его нелегко использовать для доступа к операционной системе. Но он пригоден для использования. Например, команда shell mv * otherdirectoryбудет записана в Python как:

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

Или более компактно:

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

Большинство руководств по языкам хотят, чтобы вы сначала поняли язык, а затем то, как он взаимодействует с операционной системой. Для оболочки вам нужно сначала понять, как она взаимодействует с операционной системой.

Связанный контент