Google Colaboratory+Nimで空フォルダの作成する

Google Colaboratory+Nimで空フォルダを作成します.

Google Colaboratory(以下Google Colab)は、Google社が無料で提供している機械学習の教育や研究用の開発環境です。開発環境はJupyter Notebookに似たインターフェースを持ち、Pythonの主要なライブラリがプリインストールされています。
引用元:Google Colabの使い方 (opens new window)

全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】

# nim4colabのインストール

Google Colab で nimコマンドを使用するためのライブラリであるnim4colabをインストールします.

%load_ext nim4colab により%を付けてNimのコマンドを使えます.

!pip install git+https://github.com/demotomohiro/nim4colab.git
%load_ext nim4colab

# nimpyのインストール

PythonからNimを呼び出すためのNimのライブラリ、nimpyをインストールします.

Nim初心者が始めるNimとnimpy (opens new window)

nimpyをインストールすることで、後述の fib.nim内で使っているnimpyをコンパイル、ライブラリとして使用することができます.

nimbleはNimのライブラリをインストールするためのコマンドです.

%nimble install nimpy -y

# 空フォルダの作成

ここでは、「空フォルダの作成」のサンプルコードを書き、プログラムを実行します。

本章では、山手線の駅名の空フォルダを作成します。

nim-lang OS (opens new window)

# ライブラリ

下記のコードでライブラリをインポートします。

# Google Colabでnimを使用するためのおまじない
%%nimc
import os

# リスト作成

山手線の駅名の空フォルダを作るために,山手線の駅名のリストを作成します。

# Python
# station_list = ['大崎', '五反田', '目黒', '恵比寿', '渋谷', '原宿', '代々木', '新宿', 
#                 '新大久保', '高田馬場', '目白', '池袋', '大塚', '巣鴨', '駒込', 
#                 '田端', '西日暮里', '日暮里', '鶯谷', '上野', '御徒町', '秋葉原', '神田', 
#                 '東京', '有楽町', '新橋', '浜松町', '田町', '高輪ゲートウェイ', '品川']
# print(station_list)
# # ['大崎', '五反田', '目黒', '恵比寿', ・・・・, '田町', '高輪ゲートウェイ', '品川']

# Google Colabでnimを使用するためのおまじない
%%nimc
var station_list = @ ["大崎", "五反田", "目黒", "恵比寿", "渋谷", "原宿", "代々木", "新宿", 
                      "新大久保", "高田馬場", "目白", "池袋", "大塚", "巣鴨", "駒込", 
                      "田端", "西日暮里", "日暮里", "鶯谷", "上野", "御徒町", "秋葉原", "神田", 
                      "東京", "有楽町", "新橋", "浜松町", "田町", "高輪ゲートウェイ", "品川"]


echo station_list
# @['大崎', '五反田', '目黒', '恵比寿', ・・・・, '田町', '高輪ゲートウェイ', '品川']

# for文

山手線の駅名のリストで繰り返し作業ができるfor文を下記に示します。

# # Python
# station_list = ['大崎', '五反田', '目黒', '恵比寿', '渋谷', '原宿', '代々木', '新宿', 
#                 '新大久保', '高田馬場', '目白', '池袋', '大塚', '巣鴨', '駒込', 
#                 '田端', '西日暮里', '日暮里', '鶯谷', '上野', '御徒町', '秋葉原', '神田', 
#                 '東京', '有楽町', '新橋', '浜松町', '田町', '高輪ゲートウェイ', '品川']

# for station_name in station_list:
#     print(station_name)

# Google Colabでnimを使用するためのおまじない
%%nimc
var station_list = @ ["大崎", "五反田", "目黒", "恵比寿", "渋谷", "原宿", "代々木", "新宿", 
                      "新大久保", "高田馬場", "目白", "池袋", "大塚", "巣鴨", "駒込", 
                      "田端", "西日暮里", "日暮里", "鶯谷", "上野", "御徒町", "秋葉原", "神田", 
                      "東京", "有楽町", "新橋", "浜松町", "田町", "高輪ゲートウェイ", "品川"]


for x in 0..station_list.len-25:
    echo station_list[x]

echo "========"

for station_name in station_list:
    echo station_name

# 出力結果
# 大崎
# 五反田
# 目黒
# 恵比寿
# 渋谷
# 原宿
# ========
# 大崎
# 五反田
# 目黒
# 恵比寿
# 渋谷
# 原宿
# 代々木
# 新宿
# (省略)
# 品川

# 条件

次に、「作成したいフォルダがない場合」を条件とし、空フォルダの作成を実行します。

また、ここでのフォルダ名は「2桁数字_駅名」としています。 この作り方のほうが、順番の入れ替えが楽だからです。

フォルダの操作等の処理については、下記の通りです。

  • フォルダがあるか否:「existsDir(フォルダ名)」
  • 空フォルダを作成:「createdir(フォルダ名)」
  • 2桁数字(2桁のゼロ埋め):fmt"{n:02}"

# フォルダ名の編集

# # Python
# idx = 1
# station_name = '大崎'
# folder_name = './make_folder/' + str(idx).zfill(2) + '_' + station_name
# print(folder_name)

# Google Colabでnimを使用するためのおまじない
%%nimc
import strformat

var station_list = @ ["大崎"]
var idx = 0
var folder_name = "./make_folder/" & fmt"{idx+1:02}" & "_" & station_list[0]
echo folder_name

# フォルダの作成(1階層)

# # Python
# import os

# station_list = ["大崎"]
# idx = 0
# folder_name = str(idx+1).zfill(2) + '_' + station_list[idx]
# if not os.path.exists(folder_name):
#     os.mkdir(folder_name)
#     print("make folder : " + folder_name)
    
# Google Colabでnimを使用するためのおまじない
%%nimc
import os
import strformat

var station_list = @ ["大崎"]
var idx = 0
var folder_name = fmt"{idx+1:02}" & "_" & station_list[0]

# ディレクトリがなければ作成
if not existsDir(folder_name):
  createDir(folder_name)
  echo folder_name

# 作成ディレクトリ:01_大崎

# フォルダの作成(2階層)

Nimでは,存在しないディレクトリの直下を指定しても,ディレクトリが作成される.

# # Python
# import os

# station_list = ["大崎"]
# idx = 0
# folder_name = './make_folder/' + str(idx+1).zfill(2) + '_' + station_list[idx]
# # ディレクトリの作成
# os.makedirs(folder_name, exist_ok=True)

# !ls ./make_folder/
# # 出力結果:01_大崎

# Google Colabでnimを使用するためのおまじない
%%nimc
import os
import strformat

var station_list = @ ["大崎"]
var idx = 0
var folder_name = "./make_folder/" & fmt"{idx+1:02}" & "_" & station_list[0]

# ディレクトリがなければ作成
if not existsDir(folder_name):
  createDir(folder_name)
  echo folder_name

# 作成ディレクトリ:./make_folder/01_大崎

# 全体コード

これまでの処理を1つに整理すると、下記の通りとなる。

下記のコードを実行すると、30個の空フォルダが一瞬で作成できます。

# # Python
# # 空ファイルの作成
# import os

# station_list = ['大崎', '五反田', '目黒', '恵比寿', '渋谷', '原宿', '代々木', '新宿', 
#                 '新大久保', '高田馬場', '目白', '池袋', '大塚', '巣鴨', '駒込', 
#                 '田端', '西日暮里', '日暮里', '鶯谷', '上野', '御徒町', '秋葉原', '神田', 
#                 '東京', '有楽町', '新橋', '浜松町', '田町', '高輪ゲートウェイ', '品川']

# idx = 0
# for station_name in station_list:
#   idx += 1
#   folder_name = './make_folder/' + str(idx).zfill(2) + '_' + station_name
#   if not os.path.exists(folder_name):
#             os.mkdir(folder_name)
#             print("make folder : " + folder_name)
# # # 実行結果
# # make folder : 01_大崎
# # (省略)
# # make folder : 30_品川

# Google Colabでnimを使用するためのおまじない
%%nimc
import os
import strformat
var station_list = @ ["大崎", "五反田", "目黒", "恵比寿", "渋谷", "原宿", "代々木", "新宿", 
                      "新大久保", "高田馬場", "目白", "池袋", "大塚", "巣鴨", "駒込", 
                      "田端", "西日暮里", "日暮里", "鶯谷", "上野", "御徒町", "秋葉原", "神田", 
                      "東京", "有楽町", "新橋", "浜松町", "田町", "高輪ゲートウェイ", "品川"]

var idx = 0
for station_name in station_list:
    idx += 1; #
    var folder_name = "./make_folder/" & fmt"{idx:02}" & "_" & station_name

    # ディレクトリがなければ作成
    if not existsDir(folder_name):
        createDir(folder_name)
        echo "make folder : " & folder_name

# 実行結果
# make folder : 01_大崎
# (省略)
# make folder : 30_品川
!ls ./make_folder/

# '''
# 01_大崎    08_新宿	15_駒込      22_秋葉原	29_高輪ゲートウェイ
# 02_五反田  09_新大久保	16_田端      23_神田	30_品川
# 03_目黒    10_高田馬場	17_西日暮里  24_東京	sample_data
# 04_恵比寿  11_目白	18_日暮里    25_有楽町
# 05_渋谷    12_池袋	19_鶯谷      26_新橋
# 06_原宿    13_大塚	20_上野      27_浜松町
# 07_代々木  14_巣鴨	21_御徒町    28_田町
# '''

# まとめ

Google Colaboratory+Nimで空フォルダを作成しました.

# 参考サイト

Nimの特徴や使い方をわかりやすく解説! (opens new window)

Nim初心者が始めるNimとnimpy (opens new window)

Speeding up Python code with Nim (opens new window)

Nimを組み込んでPythonを高速化してみた (opens new window)

至高の言語、Nimを始めるエンジニアへ (opens new window)

Nim Compiler User Guide (opens new window)

スレッドローカルストレージ (opens new window)

Nim 関数 (opens new window)

PythonistaのためのNim入門 (opens new window)

nim内包表記 (opens new window)

Nimの便利な標準ライブラリ sugar (opens new window)

Nim初心者が始めるNimとnimpy (opens new window)

Nimでゼロ埋め (opens new window)

Nim 変数、定数の宣言方法(var, let, const) (opens new window)

Nimを知ってほしい2022 (opens new window)

nim いろいろなコメントの方法 (opens new window)

【Nim】個人的逆引きリファレンス (opens new window)

全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】

OpenStreetMapから東北地方の道路データを整理する

OpenStreetMapから東北地方の道路データを整理する

OpenStreetMapから東北地方の道路データを整理します。

Google Colaboratory+Nimで基本文法について勉強する(リスト, for文m, If文)

Google Colaboratory+Nimで基本文法について勉強する(リスト, for文m, If文)

Google Colaboratory+Nimで基本文法(リスト, for文m, If文)について勉強します.