Pythonに挑戦(7)その(2)からの続き
(h) glob
引数で指定されたパターンにマッチするファイルのリストを作成するglob()という関数が入っているモジュールです。test1.py,test2.pyという2つのファイルと、a1.txtというファイルが入っているサブディレクトリabcdが入っている、C:\python1というディレクトリに対して、
ef1 = glob.glob(“C:\\python1\\*”)
print(ef1)
print(ef1)
とすると、‘*’はすべてのファイルにマッチするので、画面に、
[‘C:\\python1\\abcd’, ‘C:\\python1\\test1.py’, ‘C:\\python1\\test2.py’]
と表示します。recursive = Trueをつけて、
ef2 = glob.glob(“C:\\python1\\*”, recursive = True)
print(ef2)
print(ef2)
としても、
[‘C:\\python1\\abcd’, ‘C:\\python1\\test1.py’, ‘C:\\python1\\test2.py’]
と表示しますが、‘*’を‘**’として、
ef2 = glob.glob(“C:\\python1\\**”, recursive = True)
print(ef2)
print(ef2)
とすると、サブディレクトリの中も探索して、
[‘C:\\python1\\’, ‘C:\\python1\\abcd’, ‘C:\\python1\\abcd\\a1.txt’, ‘C:\\python1\\test1.py’, ‘C:\\python1\\test2.py’]
と表示します。
ef4 = glob.glob(“C:\\python1\\test?.py”)
print(ef4)
print(ef4)
とすると、test1.pyとtest2.pyだけがマッチして、
[‘C:\\python1\\test1.py’, ‘C:\\python1\\test2.py’]
と画面に表示します。
ef5 = glob.glob(“C:\\python1\\*2.py”)
print(ef5)
print(ef5)
とすると、test2.pyだけがマッチして、
[‘C:\\python1\\test2.py’]
と画面に表示します。
(i) sys
Pythonの実行環境に関する情報が得られるモジュールです。sys.versionとするとPythonのversionが得られます。sys.platformとするとPythonのプラットフォームが得られます。sys.argvとすると、コマンドライン引数がリストで取得できます。
import sys
argv1 = sys.argv
print(“Pythonのversion:“, sys.version, “Pythonのplatform:“, sys.platform)
print(“Pythonの著作権表示:“, sys.copyright)
print(“引数の数“, len(argv1))
print(argv1)
sys.exit(0)
argv1 = sys.argv
print(“Pythonのversion:“, sys.version, “Pythonのplatform:“, sys.platform)
print(“Pythonの著作権表示:“, sys.copyright)
print(“引数の数“, len(argv1))
print(argv1)
sys.exit(0)
以下をtest2.pyに入れて、コマンドラインから
py test2.py a1 b2 c3
と打ち込むと、画面に、
Pythonのversion: 3.12.0 ・・・・・ Pythonのplatform:win32
Pythonの著作権表示:Cpyright (c) 1991-1995 ・・・・・
All Rights Reserved.
引数の数: 4
[‘test2.py’, ‘a1’, ‘b2, ‘c3’]
Pythonの著作権表示:Cpyright (c) 1991-1995 ・・・・・
All Rights Reserved.
引数の数: 4
[‘test2.py’, ‘a1’, ‘b2, ‘c3’]
と表示します。コマンドライン引数をつけた形で、IDLEからコマンドライン引数をつけてtest2.pyを起動するためには、IDLEのRunメニューの[Run… Customised]サブメニューを使います(出てくるテキストボックスに、“a1 b2 c3”と入れて[OK]をクリックすると、コマンドラインから起動したのと同様の効果が得られます)。上記の末尾の、sys.exit(0)は、終了ステータス0でプログラムを終了します。
(j) pdb
デバグ用のモジュールです。プログラム開発のデバグのところに簡単な使い方の説明があります(近日中に公開します)。
(k) tkinter
画面にウィンドウを作って、ウィンドウ内で作業するためのモジュールです。このモジュールがダウンロードしたPythonに含まれるかどうか、コマンドラインプロンプトから、
py -m tkinter
と打ち込むことにより確認できます。小さなウィンドウが開いて、Tcl/Tkのバージョンがいくつ、と書いてあれば、正しくインストールされています。インストールされていない場合は、最新のPythonをダウンロードしてください。tkinterで必要となるモジュールは幾つかにまたがっているので、最初に、
from tkinter import *
from tkinter import ttk
from tkinter import ttk
と宣言して、tkinter内のモジュール(“tkinter.”を付けなくてもそのままの名前で使えます)と、tkinter.ttkモジュールをimportします。次に、
root = Tk()
root.title(“テストします“)
txt1 = StringVar()
frm1 = ttk.Frame(root, padding=10)
frm1.grid()
ttk.Label(frm1, text=”こんにちは。“).grid(column=0, row=0)
ttk.Entry(frm1, textvariable=txt1).grid(column=1,row=0)
ttk.Button(frm1, text=”中止“, command=root.destroy).grid(column=0, row=1)
root.attributes(“-topmost”, True)
root.mainloop()
print(“入力:“, txt1.get())
root.title(“テストします“)
txt1 = StringVar()
frm1 = ttk.Frame(root, padding=10)
frm1.grid()
ttk.Label(frm1, text=”こんにちは。“).grid(column=0, row=0)
ttk.Entry(frm1, textvariable=txt1).grid(column=1,row=0)
ttk.Button(frm1, text=”中止“, command=root.destroy).grid(column=0, row=1)
root.attributes(“-topmost”, True)
root.mainloop()
print(“入力:“, txt1.get())
とすると、Tkクラスのインスタンスを作成してルート・ウィンドウを作成し、「こんにちは。」と書かれたラベルとテキスト入力枠、[中止]ボタンを有するフレーム・ウィジェットfrm1を作成し、最前面に表示します。テキスト入力枠をクリックして何か入力し、[中止]ボタンをクリックすると、ウィンドウを閉じて、root.mainloop()の次のprint(“入力:“,txt1.get())を実行し、テキスト入力枠に入力した内容を表示します。
Tkinterについては、詳細に書くと1冊の本になってしまうので、ネットで検索して調べてください。
Tkinterについては、詳細に書くと1冊の本になってしまうので、ネットで検索して調べてください。