CSV EXCEL 文件操作

csv

寫入csv文件

import csv

# 元祖列表
data = [
    ('ken', '13', '01'),
    ('tom', '14', '02')
]

items = [
    {
        'name': 'bill',
        'age': '14',
        'id': '03'
    },
    {
        'name': 'jerry',
        'age': '24',
        'id': '04'
    }
]

# 字典轉列表
data2 = [i.values() for i in items]

with open('test_csv.csv', 'w', newline='') as fp:
    writer = csv.writer(fp)
    writer.writerow(['name', 'age', 'id']) # 寫入單行
    writer.writerows(data) # 寫入多行
    writer.writerows(data2)

讀取csv文件

# 讀取csv文件
with open('test_csv2.csv', 'r') as fp:
    # reader = csv.reader(fp) # 以列表返回
    # row = [i for i in reader]
    # print(row)
    #>>> [['name', 'age', 'id'], ['ken', '13', '01'], ['tom', '14', '02'], ['bill', '14', '03'], ['jerry', '24', '04']]

    dict_reader = csv.DictReader(fp) # 以OrderedDict列表返回
    for row in dict_reader:
        print(dict(row)) # OrderedDict轉dict
    #>>>    {'name': 'ken', 'age': '13', 'id': '01'}
    #       {'name': 'tom', 'age': '14', 'id': '02'}
    #       {'name': 'bill', 'age': '14', 'id': '03'}
    #       {'name': 'jerry', 'age': '24', 'id': '04'}

Excel文件

寫入

import xlwt

data = [
    {
        'name': 'ken',
        'age': '12',
        'id': '001'
    },
    {
        'name': 'tom',
        'age': '33',
        'id': '002'
    }
]

# 字典轉列表
value_li = [list(d.values()) for d in data]
#>>> [['ken', '12', '001'], ['tom', '33', '002']]

# 寫入文件
新建Excel文件
wb = xlwt.Workbook()
# 新建表
ws = wb.add_sheet('Python', cell_overwrite_ok=True)

# 寫入數據(行, 列, 數據)
# ws.write(0, 0, 'python')

# 寫入表頭
ws.write(0, 0, 'name')
ws.write(0, 1, 'age')
ws.write(0, 2, 'id')

# 數據行數
row_num = len(value_li)  # 2
# 數據列數
column_num = 3

# 寫入數據
for i in range(1, row_num + 1):
    for j in range(0, column_num):
            ws.write(i, j, value_li[i-1][j])

# 保存
wb.save('test.xls')


讀取

import xlrd
# 讀取文件
wb = xlrd.open_workbook('test.xls')
ws_count = wb.nsheets

# 讀取表
# ws = wb.sheets()[0]
ws = wb.sheet_by_name('Python')

# 讀取行
row_vlaue = ws.row_values(0) # 第一行數據
# 讀取列
row_column = ws.col_values(0) # 第一列數據
# 讀取單元格
cell1 = ws.cell(1, 2).value # 第1行2列單元格數據
# 根據行列讀取
cell2 = ws.row(1)[0].value # 第2行1列的數據

print(cell2)

# 行數, 列數
rows_num = ws.nrows
cols_num = ws.ncols
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章