見出し画像

ビジネススキルとしてのプログラミングが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}")


この記事が気に入ったらサポートをしてみませんか?