csv文件格式是一種通用的電子表格和數據庫導入導出格式。是excel表格的一種格式
python有一個專門對csv操作的包,就叫csv
import csv
def readfile(filename):
"""
以列表形式讀
:param filename:
:return:
"""
with open(filename, 'r') as fcsv:
reader = csv.reader(fcsv)
print(reader)
# reader是一個可迭代對象
for item in reader:
print(item)
def readfile_dic(filename):
"""
以字典形式讀
:param filename:
:return:
"""
with open(filename, 'r') as fcsv:
reader = csv.DictReader(fcsv)
for item in reader:
print(item)
寫
import csv
def writefile(filename):
"""
以列表形式寫
:param filename:
:return:
"""
with open(filename, 'a+', newline='') as fcsv:
writer = csv.writer(fcsv)
# 一次寫一行
writer.writerow(['a', 'b', 'c'])
# 一次寫多行
writer.writerows([('a', 'b', 'c'), ('d', 'e', 'f')])
def writefile_dic(filename):
"""
以字典形式寫
:param filename:
:return:
"""
# 設置列字段(表頭)
fieldnames = ['head1', 'head2', 'head3']
with open(filename, 'a+', newline='') as fcsv:
writer = csv.DictWriter(fcsv, fieldnames=fieldnames)
# 寫第一行表頭
writer.writeheader()
# 一次寫一行
writer.writerow({'head1': 'write1', 'head2': 'write2', 'head3': 'write3'})
# 一次寫多行
writer.writerows([{'head1': 'write1', 'head2': 'write2', 'head3': 'write3'},
{'head1': 'write4', 'head2': 'write5', 'head3': 'write6'}])
測試
if __name__ == '__main__':
print("以列表方式寫文件")
writefile('test.csv')
print("寫入成功")
print("以字典方式寫文件")
writefile_dic('test.csv')
print("寫入成功")
print("以列表方式讀文件")
readfile('test.csv')
print("以字典方式讀文件")
readfile_dic('test.csv')