在python里面,读取或写入csv文件时,使用 csv这个库。
读文件
读取csv文件,用的是csv.reader()这个方法。返回结果是一个_csv.reader的对象, 可以把这个对象转换为列表,当做列表来处理
import csv
with open('data.csv', 'r') as f:
reader = csv.reader(f)
print(type(reader))
for row in reader:
print(row)import csv
import os
from itertools import islice
# 写文件
def wt_csv(filename, data, header=None):
"""
:param filename:
:param data:
:param header:
:return:
"""
filename = os.path.join(res_dir, filename)
if os.path.isfile(filename):
with open(filename, 'a', newline='')as f:
csv_write = csv.writer(f, dialect='excel')
for row in data:
# print(row)
csv_write.writerow(row)
else:
with open(filename, 'w', newline='')as f:
csv_write = csv.writer(f, dialect='excel')
csv_write.writerow(header)
for row in data:
# print(row)
csv_write.writerow(row)
# 读文件
def read_csv(filename, field):
data = []
filename = os.path.join(res_dir, filename)
if os.path.isfile(filename):
with open(filename, 'r', buffering=True) as f:
reader = csv.reader(f)
# 忽略首行
for row in islice(reader, 1, None):
length = len(row)
for i in range(length):
if field:
if i in field:
d = list(row[i])
data.extend(d)
else:
pass
else:
d = list(row[i])
data.extend(d)
return data
# 统计字符所占文件大小
def utf8Length(sequence):
count = 0
i = 0
if sequence:
lens = len(sequence)
print(lens)
while i < lens:
ch = ord(sequence[i])
if ch <= 0x7F:
count += 1
elif ch <= 0x7FF:
count += 2
else:
count += 3
i += 1
print(count)
return count
















