専門ユニット2/山内研セミナー(2023/10/17 part2)
関連サイトと資料
ファイル操作の基本のサンプルプログラム, バイナリファイルの操作のサンプルプログラム, pickleモジュールによるオブジェクトの直列化のサンプルプログラム
sample.txt
Hello Python
Hello Deep Insider
test1.py
myfile = open('sample.txt')
lines = myfile.read()
myfile.close()
print(lines)
test2.py
myfile = open('sample.txt')
lines = myfile.read()
myfile.close()
for count, line in enumerate(lines.split('\n')):
print(f'{count}: {line}')
test3.py
myfile = open('sample.txt')
count = 0
line = myfile.readline()
while line != '': # ファイル末尾でlineの内容が''になるまでループする
print(f'{count}: {line}', end='')
count += 1
line = myfile.readline()
myfile.close()
test4.py
myfile = open('sample.txt')
for count, line in enumerate(myfile.readlines()):
print(f'{count}: {line}', end='')
myfile.close()
test5.py
myfile = open('sample.txt')
for count, line in enumerate(myfile):
print(f'{count}: {line}', end='')
myfile.close()
test6.py
myfile = open('myfile.txt', 'w')
myfile.write('Hello Python\n')
myfile.write('{0} * {1} * {2} = {3}\n'.format(1, 2, 3, 1*2*3))
number = 100
myfile.write(f'number is {number}\n')
myfile.close()
test7.py
myfile = open('myfile2.txt', 'w')
mylist = ['Hello Python', '', 'Hello World']
myfile.writelines([item + '\n' for item in mylist])
myfile.close()
test8.py
myfile = open('myfile.txt', 'w') # テキストファイルを書き込み用にオープン
myfile.write('あ') # 文字列「'あ'」を書き込み
myfile.close()
myfile = open('myfile.txt', 'rb') # テキストファイルをバイナリモードで読み込み用にオープン
content = myfile.read()
print(content)
myfile.close()
print(content.decode())

sample.gif
test9.py
def get_dimension(filename):
f = open(filename, 'rb')
spec = f.read(6).decode()
width = int.from_bytes(f.read(2), 'little')
height = int.from_bytes(f.read(2), 'little')
f.close()
print(f'this file is {spec}, size: {width} x {height}')
get_dimension('sample.gif')
test10.py
from struct import pack
myfile = open('myfile.bin', 'wb')
data = pack('b', 100)
myfile.write(data)
myfile.close()
test11.py
from struct import unpack, calcsize
myfile = open('myfile.bin', 'rb')
size = calcsize('b')
content = myfile.read(size)
n = unpack('b', content)
myfile.close()
print(n)
test12.py
import pickle
mydata = [{'name': 'shinji kawasaki', 'age': 120, 'height': 230, 'weight': 300},
{'name': 'isshiki masahiko', 'age': 60, 'height': 180, 'weight': 60}]
some_data = 100
another_data = 'deep insider'
myfile = open('mydata.pickle', 'wb')
pickle.dump(mydata, myfile)
pickle.dump(some_data, myfile)
pickle.dump(another_data, myfile)
myfile.close()
test13.py
import pickle
myfile = open('mydata.pickle', 'rb')
rmydata = pickle.load(myfile)
rsome_data = pickle.load(myfile)
ranother_data = pickle.load(myfile)
print(rmydata)
print(rsome_data)
print(ranother_data)