ビジネススキルとしてのプログラミングが8日で身につく本のソースコード
コピペしてご利用ください。日経BPのサイトではまとめてダウンロ-ドできます。
1日目 sample_01.py
# 文字列は'か"で囲む
print('First program')
print("最初のプログラム")
1日目 sample_02.py
print(100)
a = 10
print(a)
a += 100
print(a)
2日目 variable_01.py
# ゲーム開始時点
a = 0
b = 0
# 両チームに点数が入る
a += 3 # Aチームに3ポイントシュート決まる
b += 2 # Bチームに2ポイントシュート決まる
a += 2
b += 3
b += 1 # Bチームにフリースロー決まる
a += 2
b += 2
print(a,b)
2日目 variable_02.py
from openpyxl import load_workbook
wb = load_workbook(r"点取り表.xlsx")
ws = wb.active
sum_a = 0
sum_b = 0
for row in ws["A1:A10"]:
for cell in row:
sum_a += cell.value
for row in ws["B1:B10"]:
for cell in row:
sum_b += cell.value
print("Aチームの得点は",sum_a)
print("Bチームの得点は",sum_b)
2日目 variable_03.py
x = 1000
y = 2000
z = 2000
print(id(x))
print(id(y))
print(id(z))
z -= 1
print(id(z))
3日目 object_01.py
"""
bit_length()は
整数を、符号と先頭の0は除いて二進法で表すために
必要なビット数を返します
"""
a = 8
print(a.bit_length())
3日目 object_02.py
#strクラスのメソッド
str_01 = "hello python"
print(str_01.capitalize())
print(str_01.find("p"))
print(str_01.split(" "))
3日目 copy_sheet_01.py
from openpyxl import load_workbook
wb = load_workbook(r"点取り表.xlsx")
ws_orig = wb.active
ws_copy = wb.copy_worksheet(ws_orig)
ws_copy.title = ws_orig.title + "のコピー"
ws_copy.cell(row=3,column=2).value = 3
wb.save(r"点取り表_new.xlsx")
3日目 class_01.py
class Stock:
pass
st_01 = Stock()
print(type(st_01))
3日目 class_02.py
class Stock:
def __init__(self,name,price,quantity):
self.name = name
self.price = price
self.quantity = quantity
st_01 = Stock("SP3701",12000,10)
amount = st_01.price * st_01.quantity
print(amount)
st_02 = Stock("SP4201",12500,7)
amount = st_02.price * st_02.quantity
print(amount)
st_03 = Stock("SP5001",23000,5)
amount = st_03.price * st_03.quantity
print(amount)
3日目 class_03.py
class Stock:
def __init__(self,name,price,quantity):
self.name = name
self.price = price
self.quantity = quantity
def calc_amount(self):
return self.price * self.quantity
st_01 = Stock("SP3701",12000,10)
amount = st_01.calc_amount()
print(amount)
st_02 = Stock("SP4201",12500,7)
amount = st_02.calc_amount()
print(amount)
st_03 = Stock("SP5001",23000,5)
amount = st_03.calc_amount()
print(amount)
4日目 condition_01.py
a = True
if a:
print("条件が成り立つ時の処理をします")
print("条件が成り立つ時の処理を終わります")
print("if文の外です")
4日目 condition_02.py
a = False
if a:
print("条件が成り立つ時の処理をします")
print("条件が成り立つ時の処理を終わります")
print("if文の外です")
4日目 condition_03.py
a = 8
if a > 10:
print("aは10より大きい")
else:
print("aは10以下")
4日目 condition_04.py
color = "yellow"
if color == "red":
print("赤です")
elif color == "blue":
print("青です")
elif color == "yellow":
print("黄色です")
else:
print("ほかの色です")
4日目 condition_05.py
color = "red"
s = "赤色です" if color == "red" else "ほかの色です"
print(s)
4日目 condition_06.py
color = "blue"
s = "赤色です" if color == "red" else "青色です" if color == "blue" else "ほかの色です"
print(s)
4日目 loop_01.py
str_01 = "Python programming"
str_02 = ""
for ch in str_01:
str_02 += ch * 2
print(str_02)
4日目 loop_02.py
for x in range(10):
print(x, end=" ")
4日目 loop_03.py
for x in range(2,7):
print(x, end=" ")
4日目 loop_04.py
for x in range(3,10,3):
print(x, end=" ")
4日目 loop_05.py
for x in range(9,2,-3):
print(x, end=" ")
4日目 loop_06.py
i = 0
while i < 5:
print(i)
i += 1
4日目 loop_07.py
while True:
str = input("何か入力してください(Enterのみは終了):")
if not str:
break
print(str)
4日目 calc_tax_01.py
from openpyxl import load_workbook
from datetime import date # datetimeモジュールからdateクラス
wb = load_workbook(r"salesList.xlsx")
ws = wb.active
date10 = date(2019,10,1)
date8 = date(2014,4,1)
for row_no in range(2, ws.max_row + 1):
date_sales = ws.cell(row_no,2).value.date()
if date_sales >= date10:
tax_include_amount = int(ws.cell(row_no,12).value * 1.1)
elif date_sales >= date8:
tax_include_amount = int(ws.cell(row_no,12).value * 1.08)
else:
tax_include_amount = int(ws.cell(row_no,12).value * 1.05)
ws.cell(row_no,13).value = tax_include_amount
wb.save(r"salesList_new.xlsx")
4日目 calc_tax_02.py
from openpyxl import load_workbook
from datetime import date # datetimeモジュールからdateクラス
wb = load_workbook(r"salesList.xlsx")
ws = wb.active
date10 = date(2019,10,1)
date8 = date(2014,4,1)
for row_no in range(2, ws.max_row + 1):
date_sales = ws.cell(row_no,2).value.date()
tax_rate = 1.1 if date_sales >= date10 else 1.08 if date_sales >= date8 else 1.05
tax_include_amount = int(ws.cell(row_no,12).value * tax_rate)
ws.cell(row_no,13).value = tax_include_amount
wb.save(r"salesList_new.xlsx")
5日目 str_01.py
str_01 = "Python Intro"
for ch in str_01:
print(ch, end="_")
print("")
print(len(str_01))
print(str_01[0],str_01[2],str_01[len(str_01) - 1])
5日目 str_02.py
str_01 = "Programming"
#文字列[開始インデックス:終了インデックス]
print(str_01[1:8])
#文字列[:終了インデックス]
print(str_01[:4])
#文字列[開始インデックス:]
print(str_01[4:])
#文字列[開始インデックス:終了インデックス:ステップ]
print(str_01[1:8:2])
5日目 str_03.py
str_01 = "Start Python Programming"
if str_01.startswith("Python"):
print("str_01はPythonで始まる")
elif str_01.endswith("Python"):
print("str_01はPythonで終わる")
elif "Python" in str_01: #inは演算子
print("str_01はPythonを含む")
else:
print("str_01はPythonを含まない")
print(str_01.find("Python"))
str_02 = str_01.replace("Python","Ruby")
print(str_02)
5日目 str_04.py
str_01 = "始めるパイソンプログラミング"
if str_01.startswith("パイソン"):
print("str_01はパイソンで始まる")
elif str_01.endswith("プログラミング"):
print("str_01はプログラミングで終わる")
elif "パイソン" in str_01:
print("str_01はパイソンを含む")
else:
print("str_01はパイソンを含まない")
print(str_01.find("パイソン"))
str_02 = str_01.replace("パイソン","ルビー")
print(str_02)
5日目 data_struct_01.py
menu = ["カレーライス","ハヤシライス","親子丼","カツ丼","天丼"]
prices = (700,750,650,800,1000)
for cuisine in menu:
print(cuisine)
for pri in prices:
print(pri)
print(menu[1],prices[1])
menu_01 = menu[2:]
print(menu_01)
prices_01 = prices[:3]
print(prices_01)
menu[2] = "ボルガライス"
print(menu)
str_stations= """\
東京,有楽町,新橋,浜松町,田町,品川,大崎,\
五反田,目黒,恵比寿,渋谷,原宿,代々木,新宿,新大久保,\
高田馬場,目白,池袋,大塚,巣鴨,駒込,田端,\
西日暮里,日暮里,鶯谷,上野,御徒町,秋葉原,神田\
"""
lst_stations = str_stations.split(",")
print(lst_stations)
str_stations_new = ",".join(lst_stations)
print(str_stations_new)
print(len(lst_stations))
lst_stations.insert(5,"高輪ゲートウェイ")
print(lst_stations)
print(lst_stations.index("御徒町"))
menu = ["カレーライス","ハヤシライス","親子丼","カツ丼","天丼"]
prices = [700,750,650,800,1000]
print(menu[2],prices[2])
menu_01 = [["カレーライス","ハヤシライス","親子丼","カツ丼","天丼"], \
[700,750,650,800,1000]]
print(menu_01[0][2],menu_01[1][2])
print(menu_01[0])
print(menu_01[1])
menu_02 = [("カレーライス",700),("ハヤシライス",750),("親子丼",650),("カツ丼",800),("天丼",1000)]
print(menu_02[1][0],menu_02[1][1])
print(menu_02[1])
5日目 data_struct_02.py
from openpyxl import Workbook
with open("stations.txt", "r", encoding="utf-8") as f:
lst_stations = f.read().split(',')
wb = Workbook()
ws = wb.active
i = 1
for sta in lst_stations:
ws.cell(i, 1).value = sta
i += 1
wb.save("stations.xlsx")
5日目 data_struct_03.py
# forループでリスト生成
lst_01 = []
for i in range(5,100,5):
lst_01.append(i)
print(lst_01)
#range()関数でリストを作る
lst_02 = list(range(5,100,5))
print(lst_02)
#リスト内包表記
lst_03= [i for i in range(5,100,5) ]
print(lst_03)
#リスト内包表記とifの組み合わせ
lst_in = [2,6,11,67,55,12,9]
lst_04 = [i*i for i in lst_in if i%2] #0はFalse、それ以外はTrue
print(lst_04)
5日目 data_struct_04.py
dict_01 = {"カレーライス":700,"ハヤシライス":750,"親子丼":650,"カツ丼":800,"天丼":1000}
print(dict_01["ハヤシライス"])
6日目 max_01.py
unit_price_01 = 1500
unit_price_02 = 1650
amount = 120
if unit_price_01 > unit_price_02:
price = unit_price_01 * amount
else:
price = unit_price_02 * amount
print(price)
6日目 max_02.py
unit_price_01 = 1500
unit_price_02 = 1650
amount = 120
price = max(unit_price_01,unit_price_02) * amount
print(price)
6日目 max_03.py
unit_price_01 = 1500
unit_price_02 = 1650
unit_price_03 = 1480
amount = 120
price = max(unit_price_01,unit_price_02,unit_price_03) * amount
print(price)
6日目 max_04.py
unit_price = (1500,1650,1480,1760,1120)
amount = 120
price = max(unit_price) * amount
print(price)
6日目 calc_01.py
#sum() #合計
tpl_01 = (67,98,72,56,90)
sum_01 = sum(tpl_01)
print(sum_01)
print(sum(tpl_01))
#max() #最大値
#min() #最小値
a = 11
b = 22
c = 33
lst_01 = [-1000,-100,-10,1,10,100,1000]
ma_01 = max(a,b,c)
print(ma_01)
print(max(lst_01))
mi_01 = min(a,b,c)
print(mi_01)
print(min(lst_01))
#abs() 絶対値
print(abs(-111))
print(abs(222))
#pow() #べき乗 **と同じ
print(pow(3,4))
print(3**4)
#round() #丸め(偶数丸め)
print(round(1.1))
print(round(2.1))
print(round(3.1))
print(round(1.5))
print(round(2.5))
print(round(3.5))
#小数部を指定した桁数に
print(round(174.5735,2))
#負数を指定して整数部の丸め
print(round(174.5735,-2))
#divmod() #章と余りをタプルで返す
print(divmod(46,7))
6日目 cast_01.py
a = "10"
print(type(a))
int_a = int(a)
print(int_a)
print(type(int_a))
bool_a = bool(int_a)
print(bool_a)
print(type(bool_a))
b = 123
float_b = float(b)
print(float_b)
print(type(float_b))
str_b = str(float_b)
print(str_b)
print(type(str_b))
6日目 enum_zip.py
menu = ["カレーライス","ハヤシライス","親子丼","カツ丼","天丼"]
for i,name in enumerate(menu):
print(i,name)
menu = ["カレーライス","ハヤシライス","親子丼","カツ丼","天丼"]
prices = [700,750,650,800,1000]
stars = [4,3,5,2,1]
for menu_one in zip(menu, prices):
print(menu_one)
lst_menu = list(zip(menu, prices))
print(lst_menu)
for name, pri, star in zip(menu, prices, stars):
print(name,pri,star)
6日目 def_func_01.py
def get_tax(price,rate):
tax = price * rate / 100
return int(tax) #int関数を使って整数を返す
tax_01 = get_tax(25600,10)
print(tax_01)
6日目 def_func_02.py
def say_hello(who,weather):
print(f"こんにちは、{who}さん。今日は{weather}ですね。")
say_hello("太郎","良いお天気")
say_hello("次郎","寒い")
6日目 lambda_01.py
def n_times(x,n):
return x ** n
print(n_times(3,4))
lambda_nt = lambda x,n: x ** n
print(lambda_nt(3,4))
6日目 lambda_02.py
lst_01 = [8800,7800,9500,4300]
#リストの要素に対してlambda式の処理を行い、Trueのものだけを返す
lst_02 = list(filter(lambda i : int(i*1.2) > 10000, lst_01))
print(lst_02)
7日目 except_01.py
while True:
price = int(input("金額は:"))
num = int(input("個数は:"))
print(f"一個{price // num}円です")
key_q = str(input("終了はQ:"))
if key_q.upper() == "Q":
break
7日目 except_02.py
while True:
try:
price = int(input("金額は:"))
num = int(input("個数は:"))
print(f"一個{price // num}円です")
except ZeroDivisionError:
print("0で除算できません")
except ValueError:
print("数値を入力してください")
finally:
key_q = str(input("終了はQ:"))
if key_q.upper() == "Q":
break
7日目 except_03.py
from openpyxl import load_workbook
try:
wb = load_workbook(r"sample.xlsx")
except FileNotFoundError:
print("ファイルが存在しません")
else:
ws = wb.active
sum_a = 0
for row in ws["A1:A10"]:
sum_a += row[0].value
print(sum_a)
7日目 except_04.py
from openpyxl import load_workbook
try:
wb = load_workbook(r"sample.xlsx")
ws = wb.active
sum_a = 0
for row in ws["A1:A10"]:
sum_a += row[0].value
print(sum_a)
except FileNotFoundError:
print("ファイルが存在しません")
except TypeError:
print("数値が入力されていないセルがあります")
7日目 except_05.py
from openpyxl import load_workbook
try:
wb = load_workbook(r"sample.xlsx")
ws = wb.active
sum_a = 0
for row in ws["A1:A10"]:
sum_a += row[0].value
ws["A11"] = sum_a
wb.save("sample.xlsx")
except FileNotFoundError as e:
print(e)
except TypeError:
print("数値が入力されていないセルがあります")
7日目 except_06.py
from openpyxl import load_workbook
import os.path
import datetime
try:
wb = load_workbook(r"sample.xlsx")
ws = wb.active
sum_a = 0
for row in ws["A1:A10"]:
sum_a += row[0].value
ws["A11"] = sum_a
wb.save("sample.xlsx")
except FileNotFoundError:
print("ファイルが存在しません")
except TypeError:
print("数値が入力されていないセルがあります")
except PermissionError as e:
f_name , f_ext = os.path.splitext(e.filename)
file_name = f_name + datetime.datetime.now().strftime("%Y%m%d_%H%M%S") + f_ext
wb.save(file_name)
print(f"{file_name}で保存しました")
7日目 use_main.py
import openpyxl
import pathlib
def main():
wb_out = openpyxl.Workbook() #売上一覧表ワークブック
lt_sh = wb_out.active
header_edit(lt_sh)
path = pathlib.Path(r".\data")
for file_obj in path.glob(r"*.xlsx"):
sals_slip_to_lt(file_obj,lt_sh)
wb_out.save(r".\data\salesList.xlsx")
def header_edit(lt_sh):
lt_sh.cell(1, 1).value = "得意先コード"
lt_sh.cell(1, 2).value = "得意先名"
lt_sh.cell(1, 3).value = "税込金額"
def sals_slip_to_lt(file_obj,lt_sh):
wb = openpyxl.load_workbook(file_obj, data_only=True)
lt_row = lt_sh.max_row + 1
for sh in wb:
lt_sh.cell(lt_row, 1).value = sh.cell(4, 3).value #得意先コード
lt_sh.cell(lt_row, 2).value = sh.cell(3, 2).value #得意先名
lt_sh.cell(lt_row, 3).value = sh.cell(21, 6).value #税込金額
lt_row += 1
if __name__ == "__main__":
main()
8日目 time_01.py
import time
# 開始
start_time = time.time()
# ダミー処理
time.sleep(1)
# 終了
end_time = time.time()
# 経過時間を出力
elapsed_time = end_time - start_time
print(elapsed_time)
8日目 perf_01.py
import time
# 開始
start_time = time.perf_counter()
# ダミー処理
time.sleep(1)
# 終了
end_time = time.perf_counter()
# 経過時間を出力
elapsed_time = end_time - start_time
print(elapsed_time)
8日目 max_data_01.py
zenkoku.xlsxは住所.jpよりダウンロードして本書p.266~269で解説した手順に従って保存してください。
from openpyxl import load_workbook
import time
#計測開始
start_time = time.perf_counter()
wb = load_workbook(r"zenkoku.xlsx")
ws = wb.active
row_cnt = 0
for row in ws.iter_rows(min_row=2):
row_cnt += 1
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
print(f"件数:{row_cnt}")
8日目 max_data_02.py
zenkoku.sqlite3は住所.jpよりダウンロードして本書p.271で解説した手順に従って解凍、配置してください。
import sqlite3 #sqlite3ライブラリをインポート
import time
#計測開始
start_time = time.perf_counter()
conn = sqlite3.connect("zenkoku.sqlite3") #データベース接続を取得
cursor = conn.cursor()
rows = cursor.execute("SELECT * FROM ad_address")
row_cnt = 0
for row in rows:
row_cnt += 1
conn.close()
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
print(f"件数:{row_cnt}")
8日目 max_data_03.py
顧客情報_10000.xlsxはTM-WebToolsで図8-8のような項目で生成し、CSVファイルとしてダウンロードしたのち本書p.274で解説した手順に従って文字コードを変更し、Excelでブック形式で保存してください。
なおデータを生成する際は、以下のように8個の項目を作成し、出力行数を10000に設定してテストデータを生成します。
項目名 データ形式
1 fullname 姓名(半角スペース区切り)
2 furi フリガナ(姓名)
3 birth 生年月日
4 sex 性別(男 or 女)
5 zip 郵便番号
6 pref 都道府県
7 tel 電話番号
8 email Email
import openpyxl
import time
#計測開始
start_time = time.perf_counter()
wb1 = openpyxl.load_workbook(r"顧客情報_10000.xlsx")
ws1 = wb1.active
wb2 = openpyxl.Workbook()
ws2 = wb2.active
row_no = 1
for row in ws1.iter_rows():
col_no = 1
for cell in row:
ws2.cell(row_no, col_no).value = cell.value
col_no += 1
row_no += 1
wb2.save(r"顧客情報_10000_copy.xlsx")
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
8日目 max_data_04.py
import sqlite3 #sqlite3ライブラリをインポート
conn = sqlite3.connect("customers.db") #データベース接続を取得
cursor = conn.cursor()
cursor.execute("DROP TABLE IF EXISTS customers") #membersというテーブルがあれば削除
cursor.execute("CREATE TABLE customers (id INTEGER PRIMARY KEY AUTOINCREMENT, \
fullname TEXT, furi TEXT, birth TEXT , sex TEXT, \
zip TEXT, pref TEXT, tel TEXT, email TEXT)")
lst_add =[("堀川 康夫", "ホリカワ ヤスオ","1975/5/21","男", \
"080-9505", "岡山県","090-3728-1067","IQxPzErk2z@example.com"),
("桑名 美代","クワナ ミヨ", "1974/3/10","女", \
"804-6328", "山梨県","080-7073-8989","nrso6p4_@example.net"),
("小貫 香凛","オヌキ カリン","1994/12/1","女", \
"163-7904", "鹿児島県","080-8991-5862","cVuPz@sample.com")]
for add_one in lst_add:
cursor.execute("INSERT INTO customers(fullname, furi, birth, sex , \
zip, pref, tel, email) \
VALUES(?,?,?,?,?,?,?,?)",add_one)
conn.commit() #更新をコミット
rows = cursor.execute("SELECT * FROM customers")
for row in rows:
print(row)
conn.close()
8日目 max_data_05.py
import sqlite3 #sqlite3ライブラリをインポート
from openpyxl import load_workbook
import time
import datetime
#計測開始
start_time = time.perf_counter()
wb1 = load_workbook(r"顧客情報_10000.xlsx")
ws1 = wb1.active
conn = sqlite3.connect("customers.db") #データベース接続を取得
cursor = conn.cursor()
cursor.execute("DROP TABLE IF EXISTS customers") #customersというテーブルがあれば削除
cursor.execute("CREATE TABLE customers (id INTEGER PRIMARY KEY AUTOINCREMENT, \
fullname TEXT, furi TEXT, birth TEXT , sex TEXT, \
zip TEXT, pref TEXT, tel TEXT, email TEXT)")
row_no = 1
for row in ws1.iter_rows(min_row=2):
tpl_add =(row[0].value, row[1].value,row[2].value.date(), \
row[3].value, row[4].value, row[5].value, row[6].value, row[7].value)
cursor.execute("INSERT INTO customers(fullname, furi, birth, sex , \
zip, pref, tel, email) \
VALUES(?,?,?,?,?,?,?,?)", tpl_add)
row_no += 1
conn.commit() #更新をコミット
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
conn.close()
8日目 query_01.py
import openpyxl
import time
#計測開始
start_time = time.perf_counter()
wb = openpyxl.load_workbook(r"顧客情報_10000.xlsx")
ws1 = wb.active
wb2 = openpyxl.Workbook()
ws2 = wb2.active
search_pref = "広島県"
row_no = 1
for row in ws1.iter_rows():
if row_no == 1 or row[5].value == search_pref:
col_no = 1
for cell in row:
ws2.cell(row_no, col_no).value = cell.value
col_no += 1
row_no += 1
wb2.save(r"顧客情報_抽出.xlsx")
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
8日目 query_02.py
from openpyxl import Workbook
import sqlite3
import time
#計測開始
start_time = time.perf_counter()
conn = sqlite3.connect("customers.db") #データベース接続を取得
cursor = conn.cursor()
wb = Workbook()
ws = wb.active
search_pref = ("広島県",)
rows = cursor.execute("SELECT * FROM customers where pref = ?", search_pref)
row_no = 1
for row in rows:
col_no = 1
for col in row:
ws.cell(row_no, col_no).value = col
col_no += 1
row_no += 1
conn.close()
wb.save(r"顧客情報_抽出_from_SQLite.xlsx")
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
8日目 query_03.py
import openpyxl
import time
#計測開始
start_time = time.perf_counter()
wb = openpyxl.load_workbook(r"zenkoku.xlsx")
ws1 = wb.active
wb2 = openpyxl.Workbook()
ws2 = wb2.active
search_pref = "富山県"
row_no = 1
for row in ws1.iter_rows():
if row_no == 1 or row[7].value == search_pref:
col_no = 1
for cell in row:
ws2.cell(row_no, col_no).value = cell.value
col_no += 1
row_no += 1
wb2.save(r"zenkoku_抽出.xlsx")
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
8日目 query_04.py
from openpyxl import Workbook
import sqlite3
import time
#計測開始
start_time = time.perf_counter()
conn = sqlite3.connect("zenkoku.sqlite3") #データベース接続を取得
cursor = conn.cursor()
wb = Workbook()
ws = wb.active
search_pref = ("富山県",)
rows = cursor.execute("SELECT * FROM ad_address where ken_name = ?", search_pref)
row_no = 1
for row in rows:
col_no = 1
for col in row:
ws.cell(row_no, col_no).value = col
col_no += 1
row_no += 1
conn.close()
wb.save(r"zenkoku_抽出_from_SQLite.xlsx")
#計測終了
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"経過時間:{elapsed_time}")
この記事が気に入ったらサポートをしてみませんか?