pythonで任意の拡張子をもつファイルを削除するプログラムを書きました。
いちいちファイルの場所に行って
Python hogehoge.py
とするのは面倒なので、unixコマンドのように
lsや、cd ~/hogehoge
など簡単なコマンドでファイルを実行したいと考えています。
これを実現するためのモジュールか何かがあれば教えて下さい。
実行環境:
Mac, Python3.6
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
ベストアンサー
質問意図と少し外れると思いますが・・・
せっかくunixライクなMacintoshなのですからPython hogehoge.pyと打ち込まなくてもhogehoge.pyが普通のコマンドのように使えるようにしてはいかがでしょうか?
例えば
python
1#!/usr/bin/python 2import sys 3for arg in sys.argv: 4 print(arg)
このようなファイルをecho.pyとして作成しchmod +xで実行権限を付けてやると
bash
1$ chmod +x echo.py 2$ ./echo.py hello world 3./echo.py 4hello 5world
(訂正:最初の回答では./echo.pyが印字されることが抜けてました。失礼しました)
というぐあいにあたかもecho.pyが組み込みコマンドかのようにして使えます。こうできるカラクリは先頭行に書いた#!/usr/bin/python
という行です。unix系osではCコンパイラーなどで作成したネイティブな機械語の実行可能ファイルだけでなく実行権限が付与された普通のテキストファイルであっても先頭行が#!スクリプトインタープリタのパス
となっていれば
起動しようとしているスクリプトファイル名 引数...
のように実行しようとするとあたかも
スクリプトインタープリタ 起動されたファイル 引数...
と起動されたかのように解釈してくれます。これはpythonに限らず一般的なスクリプトインタープリタ(スクリプトファイルを引数にして実行できるようなあらゆるもの。Pythonもそうです。)で使える一般的な方法です。unix系OSの便利な点はこれがbashなどのシェル上から起動された場合のみならず、実行可能ファイルを起動するexecシステムコールレベルでこの機構がサポートされていることで、そのためfind ... -exec コマンド...
などのようにシェル以外から起動されるような場合でも同様に動いてくれます。要するにCコンパイラーのようなものだけがunixでのコマンドを作成する唯一の手段ではなくとても手軽にコマンドが作れるわけですね。
というわけで普段から使うコマンドをpythonなどで作るような場合、例えば~/bin
に置くことにしておき、.bash_profileに以下のように書いておくことでいつでもどこでもbash上からコマンド名だけで呼び出せます。
bash
1... 2export PATH="$PATH:~/bin"
bash
1$ echo.py hello world 2hello 3world
こうしておくことで、lsやcdを自分でpythonスクリプトに組み込まずとも充分使い勝手のよい自分だけのコマンドecho.pyが出来上がります。hogehoge.pyも同じようにしておけば今のままで充分便利に使えるのではないでしょうか?
ちなみにpythonスクリプトは分かり易さのため大抵xxx.pyのように拡張子を.pyにすると思いますが、実際は拡張子が.pyでなくてもpython スクリプトファイル名
とすれば動いてくれると思います。つまり上記の方法で動かす際にhogehoge.pyという名前でなくhogehogeというスクリプトファイル名でもよいと思います。コマンド名だけで起動できるのですが末尾の".py"を打ち込むのが面倒ならhogehogeという名前にしてもよいですし、「pythonスクリプトで作成したコマンド」ということが分かった方がよいという理由で拡張子を.pyのままにしておくのもよいと思います。
投稿2018/01/19 15:02
編集2018/01/19 15:40総合スコア18404
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/22 09:39