Python по сравнению с BASH

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

6
задан 7 March 2012 в 22:31

2 ответа

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

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

0
ответ дан 7 March 2012 в 22:31

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

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

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

Хотя в Python также есть «оболочка», ее нелегко использовать для доступа к операционной системе. Но это можно использовать. Например, команда оболочки 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('*')]

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

0
ответ дан 7 March 2012 в 22:31

Другие вопросы по тегам:

Похожие вопросы: