Pythonを使ってみよう（マクロでやっていた自動化を実現してみる）データ収取編

### 今回で３度目のPython挑戦。
見本や教材があったので何とかなったが、今回は頼りにするのがこの２文。


#### <font color=blue>Pythonでは、目的ごとに便利な機能がまとめられたライブラリを使い、簡単にプログラムを開発できます。</font>

#### <font color=blue>「openpyxl」というライブラリを使うことで、Excel操作の自動化を簡単に実現することができます。</font>

まとめられているのか→まだ見てないからわからない？？？
簡単に・・・開発できます。→ほんとに？？？(実際にはパス指定するに４時間も躓いた)

### Excelに話を移しますが、
最近のエクセルを見ていると自動化タブには「スクリプトツール」があり、
開発タブには「マクロ」
数式タブには「pythonの挿入」が入り
変化に富んでいます。

以前のような「マクロ１択」ではなくなってきています。

時代は変わります。

### 話をPythonに戻して
とにかく上記２文
Pythonでは、目的ごとに便利な機能がまとめられたライブラリを使い、簡単にプログラムを開発できます。
「openpyxl」というライブラリを使うことで、Excel操作の自動化を簡単に実現することができます。
の真偽も含めて実施していきたいと思います。

#### 信頼できるQiita情報から

```.ps
# import libraries 
import os
import pandas as pd
from glob import glob

# Configure Folder path 
mybooks = glob(r"Z:\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\.xls*",recursive=True)

df = []
for mybook in mybooks:
    df.append([mybook,os.path.basename(mybook)])

# Exchange ListObject to Dataframe
df = pd.DataFrame(df)

# Dump to ExcelFile
outputFilename = "filename.xlsx"
outputFolder = r"filepath"
outputFileFullpath = outputFolder  + "\\" + outputFilename
df.to_excel(outputFileFullpath,'List')

print(
    "ファイルを出力が終了しました。 \n\n\n" +
    "ファイル出力場所：　" + outputFolder + "\n" +
    "ファイル名：　" + outputFilename    
)
```


をコピペ

>)https://qiita.com/jooji/items/77f10bdde14ddb408678

でもファイルもできる様子もなければ、pythonのプログラム作成の画面がでて、実行されるもない。なんだ？？？

どうやら実行はしているのですが、エラメッセージも何も出ないのでやりようがない。

### 2時間経過
ということで、何らかのコードエディタ上で動かさないといけないと思い、
コマンドプロンプト内で動かしているサイトを見つけたので
やってみる。

参考は以下
>https://atmarkit.itmedia.co.jp/ait/articles/2310/03/news016.html

［解決！Python］globモジュールを使って特定のパターンにマッチするパス名を取得するには]

```.py
import glob

glob.glob(pathname, *, recursive=False)
```


```.py(エラーメッセージ)
C:\Users\maedat>python "C:\Users\maedat\OneDrive - ●●●●株式会社\デスクトップ\import glob.py"
  File "C:\Users\maedat\OneDrive - ●●●●株式会社\デスクトップ\import glob.py", line 3
    print(glob.glob(\\●●●●\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存, *, recursive=False)
```

ここには表現されていないが、glob.glob(\\　の２つの\に小さな三角形がついて赤くなっています）
![スクリーンショット 2024-11-15 152712.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/56e3ed00-fe85-8326-3053-5823462ff3e3.png)

こんな感じ

”（ダブルコーテーション）をつけたり、消したり￥を１つにしてみたり、何度か組み合わせを考えても無理で、全く区切りの記号を付けずにしてみたりなどして試したが、やはりだめでした。

### 3時間半経過

#### これは何かあると思い調べてみると

pythonで、シングルクォート（’）やダブルクォート(“）の前に「r」もしくは「R」が付けられている場合があります。

この「r」は、「raw文字列」を示すものです。(raw文字列)

raw文字列で指定された文字列リテラルでは、円記号（￥）もしくはバックスラッシュ（\）でもエスケープシーケンスとして扱われません。

>教養プログラミング
>https://schole-otium.com/programming/python-raw-string/


まずは **文字列リテラル**から
文字は「あ」とか「い」の１つの文字をいい
文字列は複数の文字を集めたものをいう
記号としての文字と
言葉としての文字がある。
>https://wa3.i-3-i.info/word19037.html

```.py
print "これは文字列です\nこれは2行目です"
```
このときの「\n」がエスケープシーケンスです。
「\n」をコンピュータさんは「改行」だと判断します。
普通の文字の組み合わせですが、特殊な文字だと読み替えてくれるのです。

>https://wa3.i-3-i.info/word11731.html
### ここまで来るまでに４時間かかりました。（(´；ω；`)ｳｩｩ泣く）

でもうまくいった
```.py
import glob

root_path = r"C:\Program Files\Blender Foundation\Blender 3.6\*"

items = glob.glob(root_path)

print("\n".join(items))
```
>KM ENV-TA BLOG
>https://kaku-env.github.io/articles/2024_02/directory_analysis/02_glob.html


```.py


C:\Users\maedat>python "C:\Users\maedat\OneDrive - ●まｒ株式会社\デスクトップ\import glob.py"
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\format※氏　名（保存フォルダ）
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\----
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\----
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●　回×接×
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\予備機
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回×接○
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回×接○
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回×接○
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回×接○
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●　回×接○
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回×接○
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回○接×
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回×接○
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_
■\user\PLANT\90_ｼｽﾃﾑ\400.アカウント\430.beat-box\432.ファイルの保存\●●　●●_　回×接○

```
うまくいった
次はエクセルへの書き出し（次回へ）