0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Last updated at Posted at 2024-11-15

今回で3度目のPython挑戦。

見本や教材があったので何とかなったが、今回は頼りにするのがこの2文。

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

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

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

Excelに話を移しますが、

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

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

時代は変わります。

話をPythonに戻して

とにかく上記2文
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(\ の2つの\に小さな三角形がついて赤くなっています)
スクリーンショット 2024-11-15 152712.png

こんな感じ

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

3時間半経過

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

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

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

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

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

まずは 文字列リテラルから
文字は「あ」とか「い」の1つの文字をいい
文字列は複数の文字を集めたものをいう
記号としての文字と
言葉としての文字がある。

https://wa3.i-3-i.info/word19037.html

.py
print "これは文字列です\nこれは2行目です"

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

https://wa3.i-3-i.info/word11731.html

ここまで来るまでに4時間かかりました。((´;ω;`)ウゥゥ泣く)

でもうまくいった

.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 - ●まr株式会社\デスクトップ\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.ファイルの保存\●● ●●_ ×

うまくいった
次はエクセルへの書き出し(次回へ)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?