import csv
# 編集用のデータ
INS_ROW_DATA = [ 10, 'INS_ROW', 100 ]
INS_COL_DATA = 'INS_COL'
UPDATE_DATA = 'UPDATE'
# "行"を挿入する。
def insert_row(cells:list, row:int, ins_list:list):
cells.insert(row,ins_list)
return
# "列"を挿入する。
def insert_col(cells:list, col:int, data):
# 全ての行に対して列を挿入する。
[ row.insert(col, data) for row in cells ]
return
# "行"を削除する。
def remove_row(cells:list, row:int):
cells.pop(row) # clear() 全削除 / remove() 先頭削除
return
# "列"を削除する。
def remove_col(cells:list, col:int):
# 全ての行に対して列を削除する。
[ row.pop(col) for row in cells ]
return
# セルを更新する。
def update_cell(cells:list, row:int, col:int, data):
cells[row][col] = data
return
# セルを表示する。
def print_cell(cells:list):
for row in cells:
for cell in row:
# 改行の変わりにタブを出力し、セル情報のみ出力する。
print(cell, end='\t')
# 改行
print()
# csv ファイルを読み取りで開く。
with open("./csv/sample.csv", mode="r", encoding="UTF-8") as file:
# csv reader を取得する。(書式の指定は dialect でまとめて指定)
reader = csv.reader(file, dialect=csv.excel_tab)
# csv をメモリ展開(軽いファイル前提)
cells = [ row for row in reader ]
# 行を挿入
insert_row(cells, 2, INS_ROW_DATA)
print_cell(cells)
# 列を挿入
insert_col(cells, 1, INS_COL_DATA)
print_cell(cells)
# 行を削除
remove_row(cells, 3)
print_cell(cells)
# 列を削除
remove_col(cells, 1)
print_cell(cells)
# セルを更新
update_cell(cells, 1,1, UPDATE_DATA)
# 結果を表示する
print_cell(cells)