1. 读取CSV文件
- reader()读取
# author:mlnt
# createdate:2022/8/16
import csv # 导入csv模块
filename = 'data.csv'
# 1.打开CSV文件
with open(file=filename) as csvFile:
# 2.创建reader对象
csvReader = csv.reader(csvFile)
# 以循环方式列出对象内容
for row in csvReader:
print(f'Row {csvReader.line_num}: {row}')
data.csv:
输出效果:
- DictReader()读取
import csv
filename = 'data.csv'
with open(file=filename) as csvFile: # 打开csv文件
csvDictReader = csv.DictReader(csvFile) # 创建DictReader对象,返回排序字典类型
for row in csvDictReader:
print(row)
输出效果:
2. 写入CSV文件
import csv
# 1.打开欲写入的文件,不存在则自动创建
with open(file='test.csv', mode='w', newline='') as csvFile:
# 2.创建writer对象
csvWriter = csv.writer(csvFile)
rows = [
['Name', 'Age', 'City'],
['Tom', 18, 'Beijing'],
['Jack', 23, 'New York'],
['Jane', 22, 'London'],
['James', 25, 'Paris'],
['Thain', 30, 'San Francisco']
]
# writerows()
csvWriter.writerows(rows)
test.csv:
3. 复制CSV文件
# author:mlnt
# createdate:2022/8/16
import csv
filename = 'test.csv'
output_file = 'out_test.csv'
with open(file=filename) as csvFile: # 以读方式打开
csvReader = csv.reader(csvFile) # 创建reader对象
content = list(csvReader) # 将数据转成列表
with open(file=output_file, mode='w', newline='') as csvFile2:
csvWriter = csv.writer(csvFile2)
# writerows()适用于迭代对象嵌套,如列表中的元素为列表
csvWriter.writerows(content)
# for row in content:
# csvWriter.writerow(row)
out_test.csv:
4. delimiter关键词
在writer()方法使用,用于更改各列之间的分隔符(默认是逗号)。
# author:mlnt
# createdate:2022/8/16
"""
delimiter是分隔符,在writer()方法使用,用于更改各列之间的分隔符(默认是逗号)
"""
import csv
filename = 'test2.csv'
with open(file=filename, mode='w', newline='') as csvFile: # 打开csv文件
csvWriter = csv.writer(csvFile, delimiter='\t') # 将分隔符修改为'\t'
csvWriter.writerow(['Name', 'Age', 'City'])
csvWriter.writerow(['Tom', 17, 'New York'])
csvWriter.writerow(['Peter', 25, 'London'])
csvWriter.writerow(['Joker', 28, 'Tokyo'])
效果:
5. 写入字典数据DictWriter()
# author:mlnt
# createdate:2022/8/16
"""
dicWriter = csv.DictWriter(csvFile, fieldnames=fields)
"""
import csv
filename = 'test3.csv'
with open(file=filename, mode='w', newline='') as csvFile: # 打开csv文件
fields = ['Name', 'Age', 'City'] # 键名
dictWriter = csv.DictWriter(csvFile, fieldnames=fields) # 创建DictWriter对象
dictWriter.writeheader() # 写入fieldnames
dictWriter.writerow({'Name': 'Toms', 'Age': 27, 'City': 'New York'})
dictWriter.writerow({'Name': 'Peter', 'Age': 26, 'City': 'London'})
dictWriter.writerow({'Name': 'Joker', 'Age': 32, 'City': 'Tokyo'})
保存效果:
可改写成:
# author:mlnt
# createdate:2022/8/16
"""
dicWriter = csv.DictWriter(csvFile, fieldnames=fields)
"""
import csv
filename = 'test3.csv'
# 定义列表,里面的元素为字典
dictList = [
{'Name': 'Toms', 'Age': 27, 'City': 'New York'},
{'Name': 'Peter', 'Age': 26, 'City': 'London'},
{'Name': 'Joker', 'Age': 32, 'City': 'Tokyo'}
]
with open(file=filename, mode='w', newline='') as csvFile: # 打开csv文件
fields = ['Name', 'Age', 'City'] # 键名
dictWriter = csv.DictWriter(csvFile, fieldnames=fields) # 创建DictWriter对象
dictWriter.writeheader() # 写入fieldnames
# 写入内容
dictWriter.writerows(dictList)
参考:
版权声明:本文为username666原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。