ファイルオブジェクト(テキストファイルの読み書き)
モード:
‘r’:読み込み
‘w’:書き込み
‘a’:追記
‘r+’:読み込み+書き込み
#ファイル操作
with open(ファイルパス) as f: #1行ずつ読み込み
for _ in range(3):
s = f.readline()
with open(ファイルパス) as f: #読み込んでリストで取得
s = f.readlines()
GUI
root = tk.Tk()root.geometry(“1000×600”)root.title(“システム学院”)
label = tk.Label(root, text=”これはラベルです”)label.config(font=(“Helvetica”, 32))label.pack()
root.mainloop()
format
結果
こんにちは世界
File操作 file.readlines()
以下に、file.readlines()の使い方の具体例を示します。
ファイルの読み込み: ファイルを開いてすべての行をリストとして読み込みます。
各行の処理: 読み込んだリストの各行に対して処理を行います。
file_path = ‘example.txt’
# ファイルを開いて行ごとに読み込む
with open(file_path, ‘r’, encoding=’utf-8′) as file:
lines = file.readlines()
# 各行を処理する
for line in lines:
print(line.strip()) # 各行を出力(末尾の改行を削除)
ファイルのパスの指定:
読み込みたいファイルのパスを指定します。この例では、example.txtというファイルを読み込みます。
ファイルの開く:
open(file_path, ‘r’, encoding=’utf-8′)でファイルを開きます。’r’は読み込みモードを示し、encoding=’utf-8’はUTF-8エンコーディングを指定しています。
withステートメントを使うことで、ファイルを自動的に閉じることができます。
行の読み込み:
file.readlines()を使って、ファイルのすべての行を読み込みます。これにより、各行がリストの要素として格納されます。
各行の処理:
for line in lines:でリストの各行を順番に処理します。
line.strip()を使って、行末の改行文字を削除しています。
応用例:ファイル内容を加工して新しいファイルに書き込む
次に、ファイルの内容を読み込み、各行に対して何らかの加工を行い、その結果を新しいファイルに書き込む例を示します。
input_file_path = ‘input.txt’
output_file_path = ‘output.txt’
# ファイルを開いて行ごとに読み込む
with open(input_file_path, ‘r’, encoding=’utf-8′) as input_file:
lines = input_file.readlines()
# 各行を加工する
processed_lines = [line.strip().upper() for line in lines]
# 加工した行を新しいファイルに書き込む
with open(output_file_path, ‘w’, encoding=’utf-8′) as output_file:
for line in processed_lines:
output_file.write(line + ‘\n’)
入力ファイルと出力ファイルのパスの指定:
入力ファイルと出力ファイルのパスをそれぞれ指定します。
入力ファイルの開いて行ごとに読み込み:
先ほどと同じように、readlines()を使ってファイルのすべての行をリストとして読み込みます。
行の加工:
リスト内包表記を使って、各行を大文字に変換し、末尾の改行文字を削除しています。
出力ファイルへの書き込み:
加工した行を新しいファイルに書き込みます。各行の末尾に改行文字を追加しています。
このようにして、file.readlines()を使うことで、ファイルの内容を行ごとに効率的に処理することができます。
for文の使い方
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num)
message = “Hello”
for char in message:
print(char)
tuple_data = (10, 20, 30)
for item in tuple_data:
print(item)
インデックスと要素の取得
names = [“Alice”, “Bob”, “Charlie”]
for index, name in enumerate(names):
print(f”Index: {index}, Name: {name}”)
キーと値の取得
student_grades = {“Alice”: 90, “Bob”: 85, “Charlie”: 92}
for key, value in student_grades.items():
print(f”Student: {key}, Grade: {value}”)
unique_numbers = {1, 2, 3, 4, 5}
for num in unique_numbers:
print(num)
基本的なリスト内包表記
squares = [x**2 for x in range(10)]
print(squares)
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)
二重ループ
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=’ ‘)
print()
基本的なrangeの使い方
for i in range(5):
print(i)
for i in range(0, 10, 2):
print(i)
for i in range(10, 0, -1):
print(i)
names = [“Alice”, “Bob”, “Charlie”]
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f”{name} scored {score}”)
ジェネレータを使った無限ループ
import itertools
counter = itertools.count(start=1, step=1)
for num in counter:
if num > 10: # この例では10で停止します
break
print(num)
with open(“example.txt”, “r”) as file:
for line in file:
print(line.strip())
breakを使ってループを中断
for num in range(10):
if num == 5:
break
print(num)
for num in range(10):
if num % 2 == 0:
continue
print(num)
forループのelseブロックは、ループが自然に終了したときに実行され、breakで終了した場合は実行されません。
for num in range(10):
if num == 5:
break
print(num)
else:
print(“ループが自然に終了しました”)
tkinterの使い方
まずは、基本的なウィンドウを作成する方法を説明します。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title(“基本的なウィンドウ”)
root.geometry(“300×200”) # 幅300ピクセル、高さ200ピクセルに設定
# メインループの開始
root.mainloop()
次に、ウィンドウにラベルとボタンを追加します。ボタンをクリックすると、ラベルのテキストが更新されます。
import tkinter as tk
def update_label():
label.config(text=”ボタンがクリックされました!”)
# メインウィンドウの作成
root = tk.Tk()
root.title(“ラベルとボタン”)
root.geometry(“300×200″)
# ラベルの作成と配置
label = tk.Label(root, text=”初期テキスト”)
label.pack(pady=10)
# ボタンの作成と配置
button = tk.Button(root, text=”クリック”, command=update_label)
button.pack(pady=10)
# メインループの開始
root.mainloop()
次に、エントリーウィジェット(テキスト入力フィールド)を追加し、ボタンをクリックすると入力されたテキストがラベルに表示されるようにします。
import tkinter as tk
def update_label():
new_text = entry.get()
label.config(text=new_text)
# メインウィンドウの作成
root = tk.Tk()
root.title(“エントリーとボタン”)
root.geometry(“300×200″)
# ラベルの作成と配置
label = tk.Label(root, text=”初期テキスト”)
label.pack(pady=10)
# エントリーの作成と配置
entry = tk.Entry(root)
entry.pack(pady=10)
# ボタンの作成と配置
button = tk.Button(root, text=”更新”, command=update_label)
button.pack(pady=10)
# メインループの開始
root.mainloop()
次に、フレームウィジェットを使用して、ウィンドウを複数のセクションに分ける方法を示します。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title(“フレームの使用”)
root.geometry(“300×200″)
# 上部フレームの作成と配置
top_frame = tk.Frame(root, bg=”lightblue”)
top_frame.pack(fill=”both”, expand=True)
# 下部フレームの作成と配置
bottom_frame = tk.Frame(root, bg=”lightgreen”)
bottom_frame.pack(fill=”both”, expand=True)
# 上部フレームにラベルを追加
top_label = tk.Label(top_frame, text=”上部フレームのラベル”)
top_label.pack(pady=10)
# 下部フレームにボタンを追加
bottom_button = tk.Button(bottom_frame, text=”下部フレームのボタン”)
bottom_button.pack(pady=10)
# メインループの開始
root.mainloop()
gridジオメトリマネージャを使って、ウィジェットをグリッド状に配置する方法を示します。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title(“gridレイアウト”)
root.geometry(“300×200″)
# ラベルの作成と配置(グリッド)
label1 = tk.Label(root, text=”ラベル1″)
label1.grid(row=0, column=0, padx=10, pady=10)
label2 = tk.Label(root, text=”ラベル2″)
label2.grid(row=0, column=1, padx=10, pady=10)
# エントリーの作成と配置(グリッド)
entry = tk.Entry(root)
entry.grid(row=1, column=0, columnspan=2, padx=10, pady=10)
# ボタンの作成と配置(グリッド)
button = tk.Button(root, text=”クリック”)
button.grid(row=2, column=0, columnspan=2, padx=10, pady=10)
# メインループの開始
root.mainloop()
これらの例を通して、tkinterの基本的な使い方について理解が深まることを願っています。tkinterを使えば、シンプルなデスクトップアプリケーションを素早く作成できます。さらに複雑なウィジェットやレイアウトを使用することで、より高度なアプリケーションも開発できます。