
過去 3 週間ほど bash を勉強していますが、基本的にはコマンドライン入力だけなので、習得するのは非常に簡単です。これからは Python に移行しようと決めたのですが、学習中ずっと迷っています。質問は Python についてです。Python はすべて、数値、リスト、変数などを中心に展開しているようです。一方、bash はコマンドがはるかにわかりやすいようです。Python では、ファイルを移動したり、ディレクトリを変更したり、その他そのようなことをする方法が 1 つも見つかりません。bash に慣れすぎていて、Python を習得する余裕がないような気がします。誰か、このことについて説明してください。
答え1
Bash はプログラミング言語ではなく、コマンドをすばやく入力して実行することを目的としたシェルです。したがって、他のコマンドを実行してジョブを実行します (例:mv
ファイルやディレクトリを移動します)。Bash の変数は制限されており、コマンドはすべて文字列であるため、厳密にする必要はありません (ただし、型を強制することは可能です。 を参照してくださいhelp declare
)。
一方、Pythonはより広範なプログラミング言語であり、より多くの言語機能を備えています。他のプログラムを実行する代わりに、組み込み関数やモジュール(他の言語のライブラリ)の他の機能を使用します。Pythonの入出力に関する基本的なチュートリアルについては、入力出力チュートリアルPython でプログラミングを始めたいのであれば、チュートリアル全体を読む価値があります。
答え2
Python はプログラム言語であり、他のすべてのプログラミング言語と同様に、プロセスとデータを記述するように設計されています。質問のほとんどは、モジュール内のオペレーティング システムへの API に関するものです。os
たとえば、os.chdir()
およびos.rename()
(UNIXmv
コマンドの場合) などです。
シェルはオペレーティング環境であり、さまざまなレベル (ファイル、プロセスなど) でオペレーティング システムに簡単にアクセスできるようにします。変数、ループ、条件などのプログラミング構造が含まれているため、この意味ではプログラミング言語ですが、プログラミング言語として設計されたわけではなく、進化したものです。シェル スクリプトを使用すると、非常に素晴らしいことを行うことができます。私はかつて、1 か月に 6 万件のリクエストを処理するコール トラッキング システムを作成しました。ただし、コンピューター言語の方がうまく処理できる制限もあります。
例えば、あなたはできたBash で Web ブラウザを作成することもできますが、特に 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('*')]
言語に関するほとんどのチュートリアルでは、まず言語を理解し、その後で言語がオペレーティング システムとどのようにインターフェイスするかを理解する必要があります。シェルの場合は、まずシェルがオペレーティング システムとどのようにインターフェイスするかを理解する必要があります。