こんにちは、ゆうかりです。
このたび、無事?に、電気工事士2種の試験に受かりました。
つきましては、オイラが学科試験勉強のために使った、過去問集PDFを作成する適当スクリプトを共有します。
電気工事士学科試験の問題構造
学科試験の過去問は、電気技術者試験センターが公表しております。
https://www.shiken.or.jp/answer/index_list.php?exam_type=50
まあこれ、問題と解答のPDFが別なので、オイラはTACさんの過去問PDFを使いました。
https://www.tac-school.co.jp/kouza_denkikoujisi/denkikoujisi_kakomon.html
TACさんの過去問PDFは、問題の最後のページに解凍がくっついている構造です。
で、問題ですが。
表紙や注意事項、一般問題、配線図、及び解答の順番になっています。
TACさんのページに公開されている、平成21年度から令和5年度まで、ページ数も含め、問題構造は変わりません。
過去問集PDFの作りざま
一般問題、配線図、解答をそれぞれまとめたPDFを作り、PDF各ページの左上に、元のファイル名を記載する方向で。
ページの例はこんな感じ。
一般問題、174ページあります、やりほうだい!。
つかいかた
まあそれぞれ印刷して、解いてみて答え合わせする感じで。
オイラは、一般問題を2Nアップ(2ページを1ページにまとめる)、配線図はそのまま、解答はPC画面表示で勉強していきました。
だいたい1~2周すれば、まあなんとなくコツ的なものはつかめるかと思います。
スクリプト
・ベースとなる問題解答PDFは、スクリプトと同じフォルダに突っ込む
・あらかじめサブフォルダ「kiridashi」を作っておく
・以下の3つのスクリプトを実行すると、kiridashiフォルダ内にPDFが3つできる
・それぞれのスクリプトの違いは、PDFファイルのページコピーの位置が違うだけ
・PyMuPDFライブラリを使ってます
pip install PyMuPDF
でセットアップできまーす
kiridashi1.py
import glob
import os
import fitz
import sys
basefiles = glob.glob('./*.pdf')
doc3 = fitz.open()
for basefile in basefiles:
filenamerow = os.path.splitext(os.path.basename(basefile))[0]
print (basefile)
doc1 = fitz.open(basefile)
doc2 = fitz.open()
doc2.insert_pdf(doc1, from_page=4, to_page=9)
for num in range(0,6):
page = doc2.load_page(num)
rc = page.insert_text(
(40,40), # bottom-left of 1st char
filenamerow, # the text (honors '\n')
fontname="helv", # the default font
rotate=0, # also available: 90, 180, 270
)
doc3.insert_pdf(doc2)
targetfilename = 'kiridashi/zenbu.pdf'
doc3.save(targetfilename)
sys.exit()
kiridashi2.py
import glob
import os
import fitz
import sys
basefiles = glob.glob('./*.pdf')
doc3 = fitz.open()
for basefile in basefiles:
filenamerow = os.path.splitext(os.path.basename(basefile))[0]
print (basefile)
doc1 = fitz.open(basefile)
doc2 = fitz.open()
doc2.insert_pdf(doc1, from_page=10, to_page=12)
doc2.insert_pdf(doc1, from_page=14, to_page=14)
for num in range(0,4):
page = doc2.load_page(num)
rc = page.insert_text(
(40,40), # bottom-left of 1st char
filenamerow, # the text (honors '\n')
fontname="helv", # the default font
rotate=0, # also available: 90, 180, 270
)
doc3.insert_pdf(doc2)
targetfilename = 'kiridashi/zenbu2.pdf'
doc3.save(targetfilename)
sys.exit()
kiridashi3.py
import glob
import os
import fitz
import sys
basefiles = glob.glob('./*.pdf')
doc3 = fitz.open()
for basefile in basefiles:
filenamerow = os.path.splitext(os.path.basename(basefile))[0]
print (basefile)
doc1 = fitz.open(basefile)
doc2 = fitz.open()
lastpage = doc1.page_count - 1
doc2.insert_pdf(doc1, from_page=lastpage, to_page=lastpage)
for num in range(0,1):
page = doc2.load_page(num)
rc = page.insert_text(
(40,40), # bottom-left of 1st char
filenamerow, # the text (honors '\n')
fontname="helv", # the default font
rotate=0, # also available: 90, 180, 270
)
doc3.insert_pdf(doc2)
targetfilename = 'kiridashi/zenbu_kotae.pdf'
doc3.save(targetfilename)
sys.exit()
がんばって!
IoT的なアレには親和性の高い電気工事士です、が。
オイラは技能試験1回落ちてます・・・。
いやあ、手が遅くて、間に合いませんでした、、、。
電気の基礎の振り返りや学習にも至適なので、ご興味があれば是非!。
投稿者の人気記事
-
eucaly
さんが
2024/01/28
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する