CSV是一种通用的文件格式,通常用于将表格数据导入其他应用程序。Python的csv模块提供了用于读取和写入CSV文件的功能。
- csv文件的写入
import csv
header = ['Name', 'Age', 'City']
rows = [ ['River', 20, 'City 1'],
['Forest', 30, 'City 2'],
['Moutain', 40, 'City 3']]
#newline 不出现空行
with open('example.csv','w',newline="") as file:
writer = csv.writer(file)
writer.writerow(header)
writer.writerows(rows)
- 读取
- 备注 reader 不是一个可迭代对象,不存在索引等
with open('example.csv','r') as file:
reader = csv.reader(file)
Header = next(reader)
for row in reader:
print(row)
- 读取txt文件
- delimiter 指的是同一行数据的分隔符
file = open('file.txt',newline='')
lines = file.readlines()
file.close()
csv_reader = csv.reader(lines,delimiter=',')
for row in csv_reader:
print(row)
csv模块提供的操作并不多,集成功能也不多,下面列出几个常用的函数/方法
- zip函数
names = ["doctor1","doctor2","doctor3"]
scores = [100,90,80]
_dict = dict(zip(names, scores))
# 输出结果
print(_dict)
{'doctor1': 100, 'doctor2': 90, 'doctor3': 80}
- map函数
def double_str(n):
return n * 2
s = ["hello world","welcome","goodluck","goodbye"]
upper_s = list(map(str.upper, s))
print(upper_s)
- filter函数
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = list(filter(lambda x: x >= 5, nums))
print(result)
[5, 6, 7, 8, 9, 10]
- format 函数
name = "Alice"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
- divmod 函数
div_result = divmod(10, 3)
print(div_result)
- generator
def counter(n):
for i in range(n):
yield i
my_generator = counter(5)
my_list = [next(my_generator) for _ in range(3)]
print(my_list)