ファイルオブジェクト(テキストファイルの読み書き)
モード:
‘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(“ループが自然に終了しました”)