LoginSignup
1
1

More than 1 year has passed since last update.

pythonでexcelファイルの正規表現置換をする

Posted at

excelの内容を正規表現で置換したかった。
ある列に、数字をカンマで区切った内容を入れてあるのだが、
最後がカンマで終わっている場合、カンマを取りたい。

たとえば、

123, 124, 222, 234
333, 444, 555, 666,
111, 222, 333

みたいな場合、2行目の666, のカンマをとって

333, 444, 555, 666

としたい。

pythonの正規表現は使ったことがあり、
最初は

resut = pattern.match(",$",s1)

という風にしたのだが、なぜかマッチしない。
findallを使ったらマッチした。

置換はもっとスマートな方法があるかもしれないが、
最後の一文字を落とす、という風にした。

rep.py
import glob
import os
import openpyxl
import re
import sys

pattern = re.compile('.*,')
bookname = sys.argv[1]
newbook = sys.argv[2]
wb = openpyxl.load_workbook(bookname,data_only=True)
ws = wb[u"Sheet1"]

for row in range(1000):
    c1 = ws.cell(row=row+1, column=9)
    if c1.value is None:
        pass
    else:
        s1 = str(c1.value)
        result = re.findall(r",$",s1)
        if result:
            print(str(s1[:len(s1)-1]))
            s2 = str(s1[:len(s1)-1])
            c1.value = s2

wb.save(newbook)
wb.close

列は9列目(「I列」)を固定で指定。
ファイル名と保存ファイル名は引数で指定

python rep.py filename1 filename2
1
1
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
1
1