Python パイソンで エクセル表からファイルを作る方法を解説しました。Pythonで アニメを作る方法はこちら。Pythonの使い方はこちら
ほかの解説動画はこちら。
目次
- Python (パイソン) の入手
- Python (IDLE) の起動
- IDLE(Python)の操作
- Python のプログラム 例1
- Python のプログラム 例2
- Python のプログラム 例3
- さらに勉強をすすめたいなら
- 9VAeきゅうべえに関する問い合わせ
Python (パイソン) の入手
Windows の場合
- Python.jpのフルインストーラ版から、ダウンロードするのが簡単。ここ(pythonlinks.python.jp) から 64bit(古いPCは32bit)などを選んでダウンロードできます。Windows10 では、コマンドプロンプトから python と入力すれば、アプリストアから Python3.1 がインストールできます。それ以外の方法でインストールした場合、インストーラ画面で、最初に下の「Add Python to PATH」にチェックをいれれば、コマンドプロンプトから、python が使えるようになります。
ラズベリーパイの場合
- python(Ver2), python3(Ver3) が最初からはいっています
- ラズベリーパイの設定についてはこちら
Mac の場合
- M1版 Macの場合、Python.jpのフルインストーラ版から、ダウンロードするのが簡単。ここ(pythonlinks.python.jp) からダウンロードできます。
- Intel 版 Mac では、python (Ver2), python3(Ver3) が最初からはいっており、ターミナルから使えました。
- ターミナルは「アプリケーション>ユーティリティ」の中にはいっています。ドックの上にターミナルアイコンをドラッグして登録しておくとよいでしょう。
python2 と python3 の違い
- python2 と python3 で書き方が違うところがあるので注意(ネット上には、python2のプログラムもあり、そのまま python3で動かすとエラーになります)
- プログラムに日本語を入れたいとき(表示したい文字が日本語など)は、python3 を使います。
Python (IDLE) の起動
Pythonを使ってみましょう。基本的な IDLE を使ってみます。
Windows の場合
- Windowsボタンをクリックし「python」と入力して、アプリ IDLE(Python) を実行。
- ターミナルから「idle」を実行してもかまいません。Python という名前で IDLE が起動します。
ラズベリーパイの場合
-
画面左上の Raspi ボタン>Programming(プログラミング) > Python の Shell ウィンドウ(実行画面)が開きます。
IDLE(Python)の操作
- Fileメニューから、New File を実行。エディタがひらきます
- ここに下のようなプログラムを入れます
- Run メニューから、Run Module を実行
- Pythonウィンドウで実行されます。エラーがあれば、ここに表示されます
Python のプログラム 例1
下のような Python プログラムをいれてみましょう。
プログラム例を示します。
import os # ファイル操作 srcCSV = "c:/test/test.csv" # CSVファイル fr = open(srcCSV,'r') for ln in fr: print(ln) fr.close() a = input("***end*** ")
- import os は、ファイル処理するときに必要です
- srcCSV は、CSVファイルのフルパス。パスの区切りは「/」です
- open がファイルを開く関数。'r' は読み出しの意味。
- for ln in fr: は、ファイルを1行ずつ読み出して、ln にいれるの意味
- print() でなかの変数を表示
- Input() 文字入力関数で、"***end*** " を表示して入力待ちになります
UnicodeDecodeError: 'cp932' codec can't decode エラー
上のプログラムを実行すると、上のエラーが出ました。
cp932 は、Shift-JISのことです。open に 「encoding="utf-8"」をいれるとエラーが出なくなりました
fr = open(srcCSV,'r',encoding="utf-8")
- Python のプログラムは、文字コード utf-8 で書かないといけないのですが、ファイル open の文字コードが、何も書かないと、Shift-JIS になるようです。初期のころ、Windows も Mac も日本語の標準が Shift-JISだったなごりでしょう
Python のプログラム 例2
プログラムを改造していきましょう。
- エクセル行の最初の値が「Folder」の場合、その後ろにある文字列をとりだして、その名前のフォルダを作成する
- ルートフォルダの場所は、先頭で指定
下のようなCSVファイルを想定しています。
Folder,aaa,bbb,ccc Data1,100,101,102 Data2,200,201,202
プログラム例を示します。
import os # ファイル操作
import csv # CSV処理
srcCSV = "c:/test/test.csv" # CSVファイル(各自の環境に合わせて修正)
outDIR = "c:/test/" # 出力先フォルダ(各自の環境に合わせて修正) fr = open(srcCSV,'r') cr = csv.reader(fr) for ln in cr: if ln[0] == "Folder": for nm in ln[1:]: dir = outDIR+"/"+nm if not os.path.exists(dir): os.mkdir(dir) print(ln) fr.close() a = input("***end*** ")
- import csv で、csv.reader が使えるようになります
- for ln in cr: の ln は、リスト(文字列の配列)になります
- ln[0] は最初の文字列(先頭は0)
- for nm in ln[1:] の ln[1:] はリストの2番目から最後まで。nmは名前になります
- os.path.exists(dir) がファイル・フォルダの存在チェック
- os.mkdir(dir) でフォルダ作成
Runメニュー>Run Module で実行します。エラーがなければ aaa,bbb,cccフォルダが作成されるはずです。
Python のプログラム 例3
さらに、プログラムを次のように改造しましょう。
- 作成した各フォルダの中に、テキストファイルを作成し、値をいれる
- テキストファイル名は、先頭列の名前にする
下のようなCSVファイルを想定しています。
Folder,aaa,bbb,ccc Data1,100,101,102 Data2,200,201,202
プログラム例を示します。
import os # ファイル操作
import csv # CSV処理
srcCSV = "c:/test/test.csv" # CSVファイル(各自の環境に合わせて修正)
outDIR = "c:/test/" # 出力先フォルダ(各自の環境に合わせて修正) dirs = "" fr = open(srcCSV,'r') cr = csv.reader(fr) # csv読み出し for ln in cr: # 1行リスト if ln[0] == "Folder": dirs = ln # フォルダ名を記憶 for nm in ln[1:]: dir = outDIR+"/"+nm if not os.path.exists(dir): os.mkdir(dir) print(nm) continue # Folder行終了 for id,nm in enumerate(ln): #番号id と中身nm を取り出す if id > 0: txt = outDIR+"/"+dirs[id]+"/"+ln[0]+".txt" if os.path.exists(txt): os.remove(txt) # 存在していたファイルを削除 fw = open(txt,'x') # 'x'新規 'w'既存ファイルに書き込み 'a'追記 fw.write(nm) # 項目をテキストに書き込みます fw.close() # 書き込み終了 fr.close() a = input("***end*** ")
Runメニュー>Run Module で実行します。エラーがなければ 下のようなフォルダとファイルが作成されるはずです。
test ├──aaa │ ├──Data1.txt │ └──Data2.txt ├──bbb │ ├──Data1.txt │ └──Data2.txt ├──ccc │ ├──Data1.txt │ └──Data2.txt
さらに勉強をすすめたいなら
- 画像処理 OpenCV と Python を使ったアニメーション動画用紙のスキャン画像位置合わせ Webサーバー、処理の自動化(実際に運用中)
- Python + Flask でアニメGIF ダウンロードサーバーを作る
- Python パイソンで アニメを動かしてみた
9VAeきゅうべえに関する問い合わせ
- 9VAeについて、Yahoo知恵袋で質問すれば答えが得られます。
- 本記事の文章、図、アニメは複製自由です。教材、解説記事にご利用ください。