Giter VIP home page Giter VIP logo

linux_python_minimum_example's Introduction

linux python minimum example

このレポジトリでは、pythonからbash scriptを呼び出す基本的な動作について解説することを目的として、簡単なプログラム例を紹介します。

個人的な情報共有資材ですが、再配布等はご自由に。

チュートリアル

レポジトリのクローン

python実行環境があるlinuxシステムにおいて、このレポジトリをクローンしてください。

※python実行環境はconda環境を使っていただくこともできます。(conda activate qiime2-2022.2)

git clone [email protected]:dakesan/linux_python_minimum_example.git

cloneできたら、そのディレクトリに移動します。

cd linux_python_minimum_example

コードの説明

test.sh

こちらはlinuxコマンドを実行するシェルスクリプトです。シェルスクリプトでは、特に明示せずともコマンドライン引数を$1, $2, ...に受け取ります。

試しに以下のコマンドをlinuxターミナルで実行して、コマンドライン引数が受け取れていることを確認しましょう。

bash test.sh 引数1 引数2

引数1、2のところには何を入れてもOK。自由に試してみましょう。

動作を確認したところでコードを見てみましょう。

#!/bin/bash

echo "一つめの引数は${1}でした"
echo "二つ目の引数は${2}でした"

echo "引数を見つけたので意味も無く五秒bashスクリプトは停止します...."

sleep 5

echo "bashスクリプトは実行完了しました"

このコードはシンプルに引数を受け取り、echoコマンドで表示させているだけです。

test.py

このpythonスクリプトはpythonからbashスクリプトを呼び出すコードが記述されています。

先ほどターミナル上で指定していた二つの引数を、ここではpythonファイル内に記述しています。(arg1, arg2がそれです)

subprocess.Popen()メソッドを使うことでターミナルへとコマンドを投げることができます。

ではpythonファイルを実行できることを確認しましょう。 linuxターミナルで以下のコードを実行します。

python test.py

無事、pythonおよびbashからのログが出力することが確認できましたか? もし見れていない場合、python2を使っている可能性があります。python3実行環境でお試しください。

では今度はpythonのファイルを直接編集してから再度pythonファイルをターミナルから実行してみましょう。

具体的にはarg1arg2を以下を参考に書き換えてから

arg1 = "書き換えた後の文字列"
arg2 = "同じく"

再びターミナルで実行です。

pyrhon test.py

どうですか?書き換えた内容が出力に反映されましたよね?

まとめ

実際にはpython内部でarg1は変数として動的に扱うことができます。

たとえば、特定のフォルダ下にあるファイル名を取得して投げたりだとか、連番をpythonで作成して投げたりとかとか・・・・。

このような変数の取り扱いについてイメージができれば幸いです。

linux_python_minimum_example's People

Contributors

dakesan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.