なろう分析記録

『小説家になろう』をふくめ『ネット小説投稿サイト』を分析する。コード置き場,主にPython,javascript,たまに創作。

【Pythonサンプルコード】Jupyter Labからのコマンドライン操作とバージョン表記無し版『requirements.txt』の書き出し

Pythonコードからのコマンドライン操作

今回はPythonコードからコマンドラインを実行する方法と、それを利用したバージョン表記の無し版「requirements.txt」の作例をご紹介したいと思います。

f:id:karupoimou:20200408135010p:plain:w400
サンプル

コマンドラインを使うには『os.system』を使用する

コマンドラインを使うにはPythonに最初から入っているosモジュールを使用します。

os.system('コマンド')

サンプルコード

import os

os.system('pip list')

f:id:karupoimou:20200408133855p:plain:w400
実行例

os.system()を使うことで、pipのアップデートや書き出しなどの操作もPython側から行うことが出来るようになります。

『requirements.txt』の書き出し

次はpythonのパッケージ環境をまるごと書き出した『requirements.txt』の作成と、書き出したrequirements.txtからバージョン表記を削除するサンプルコードになります

import os

# requirements.txtの書き出し
os.system('pip freeze > requirements.txt')

# バージョン表記の削除
with open("requirements.txt", mode='r',encoding="utf-8") as f:
    pkg_list = f.readlines()

non_version_list=""

for pkg in pkg_list:
    index = pkg.find("=")
    non_version_list = non_version_list + pkg[0:index] + "\n"
    
# バージョン表記の無し版の書き出し
with open("requirements_non_version.txt", mode='w',encoding="utf-8") as f:
    f.write(non_version_list)   

上記コードを実行すると、カレントフォルダ内に『requirements.txt』と『requirements_non_version.txt』のテキストファイルが生成されます。

f:id:karupoimou:20200408135010p:plain:w400
ファイル


(なおバージョン表記削除版を作ったのはwin10で書き出したバージョン表記付きrequirements.txtをLinux環境に持っていくとエラーが出まくったため)

参考サイト

qiita.com