
저는 지난 3주 동안 bash를 공부해왔는데, 기본적으로 명령줄 입력이기 때문에 배우기가 매우 쉽습니다. 나는 이제 Python으로 전환하기로 결정했지만 그것을 배우려고 노력하는 동안 내내 길을 잃었습니다. 내 질문은 파이썬에 관한 것인데, 모든 것이 숫자, 목록, 변수 등을 중심으로 돌아가는 것 같습니다. 반면 bash는 명령에 대해 훨씬 더 간단한 것 같습니다. 파일을 이동하거나 디렉터리를 변경하거나 이와 유사한 방법이 있는 Python의 예를 찾을 수 없습니다. 나는 파이썬을 배우기에는 이미 bash에 너무 익숙해진 것 같습니다. 누군가 나에게 이것에 대해 설명해 주시겠습니까?
답변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,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('*')]
대부분의 언어 튜토리얼에서는 언어를 먼저 이해하고 나중에 운영 체제와 인터페이스하는 방법을 이해하기를 원합니다. 셸의 경우 먼저 운영 체제와 인터페이스하는 방법을 이해해야 합니다.