8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【中小企業にプログラミングを】紙の資料をスキャンしてCSVでリストにした名前に一括変更する

Last updated at Posted at 2019-10-08

"中小企業にプログラミングを!"
簡単なプログラミングで効率アップ!プログラマでもない私が必要に迫られ業務改善とともにスキルをあげるシリーズ

概要

長年続いている会社では紙での資料が山積みになっていがち。紙の資料は検索性も低いため、探す時間に無駄が多すぎる。外から来た身からすると、この無駄に時間を費やすことが泣ける。けど泣いても解決しないので、なんとか解決したい。よし、電子化だ。電子化はスキャナで読み込めばいいのだが、読み込んだファイルに個別の名前をつけるマウス操作&コピペがいちいち大変、、、。ということでpythonを使って名前付け作業を楽にしてみた。

全体像

1枚ものの図面のPDF化を想定したものになっているので、ファイルはそれぞれ1ページで、ファイル名は"図番_付加情報_付加情報.pdf"となるようにしています。

フォルダ構造

プログラムとファイル名リストのcsvは同じ階層、PDFファイルはpdfsフォルダに入れます
/
┣list.csv
┣rename.py
┗pdfs
 ┣20191008000000001.pdf
┣20191008000000002.pdf
┣20191008000000003.pdf
...
┗20191008000000999.pdf

作業の順番

  1. 紙書類をスキャンしてPDF化する
  2. スキャンした順序で付けたいファイル名をリスト化する
  3. コード実行

image_filenamer.png

コード

rename.py
# coding: utf-8

import csv #csvから情報を得るためのライブラリ
import os #ファイル名変更するためのライブラリ
import glob #フォルダの中身を取得するためのライブラリ

# csvファイルの読み込み
f = open('list.csv', 'r', encoding="utf-8-sig")
rows = csv.reader(f)

# PDFファイルの所在の設定と配列化
path = "./pdfs/"
pdfs = list(glob.glob(path + "*.pdf"))
# 名前順(=読み込んだ順)に並び替え
sorted_pdfs = sorted(pdfs) 


# row[0]にはcsvのA列、row[1]にはB列、row[2]にはC列が入ります
# もし各列にデータがあればその情報をファイル名に付けます。
for row, pdf in zip(rows, sorted_pdfs):
	file_title = path
	if row[0] != "":
		file_title += row[0] + '_'
	if row[1] != "":
		file_title += row[1]
	if row[2] != "":
		file_title += '_' + row[2]
	file_title += ".pdf"

	os.rename(pdf, file_title) # 元の名前から新しい名前に付け替える関数
	print(os.path.exists(file_title)) # 正しく付け替えれたらTrueを表示します

f.close()

あとがき

今回私のケースは紙書類が1000枚以上あってので、プログラムを実行するまでの紙のスキャンとリスト化がめっちゃ大変でした。長年続いてきた中小企業って昔ながらのやりかたを継承し続けているので、改善余地が相当あるように見えます。このあたりを効率化できたら作業効率性が相当違うし、昨今の人手不足問題もいくばくか解消できるんじゃないかと思います。今後も記事を書いていきたいと思うので、似たような境遇の人の参考になれば嬉しいです。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?