📅  最后修改于: 2023-12-03 14:45:56.906000             🧑  作者: Mango
CSV(Comma Separated Values)格式是一种常见的文件格式,用于存储和交换数据。Python提供了内置的csv模块,可以很方便地读取和写入CSV文件。
使用csv模块中的reader函数,可以将CSV文件转换为Python中的List。
下面是一个示例CSV文件“example.csv”:
name,age,gender
Tom,25,Male
Jane,30,Female
John,45,Male
代码:
import csv
csv_data = []
with open('example.csv', 'r', newline='') as file:
reader = csv.reader(file)
for row in reader:
csv_data.append(row)
print(csv_data)
输出:
[['name', 'age', 'gender'], ['Tom', '25', 'Male'], ['Jane', '30', 'Female'], ['John', '45', 'Male']]
在代码中,我们首先创建一个空的List"csv_data",然后使用Python内置的"open"函数打开CSV文件。接着,我们使用csv.reader函数将文件内容转换为List,将每一行数据作为一个子List的元素添加到"csv_data"中。
读取CSV文件并将其转换为Python List时,csv模块会将所有的数据都转换为字符串类型。如果需要的话,可以在代码中对数据进行类型转换。例如,将age字段转换为整型:
import csv
csv_data = []
with open('example.csv', 'r', newline='') as file:
reader = csv.reader(file)
for i, row in enumerate(reader):
if i == 0: # Skip header row
continue
name, age, gender = row
csv_data.append([name, int(age), gender])
print(csv_data)
输出:
[['Tom', 25, 'Male'], ['Jane', 30, 'Female'], ['John', 45, 'Male']]
在代码中,我们在for循环中使用enumerate函数来获取每一行数据的行号(从0开始)。注意,我们跳过了第一行数据,因为它是标题行。
接着,我们将每行数据的第一个元素(姓名)赋值给name变量,第二个元素(年龄)赋值给age变量,并将其转换为整型。最后,我们将这三个变量组成一个新的List,并将其添加到"csv_data"中。
使用csv模块,可以很方便地将Python中的List写入CSV文件。
例如,我们有一个包含学生信息的List:
students = [
['Tom', 25, 'Male'],
['Jane', 30, 'Female'],
['John', 45, 'Male']
]
要将这个List写入CSV文件中,可以使用csv模块中的writer函数:
import csv
students = [
['Tom', 25, 'Male'],
['Jane', 30, 'Female'],
['John', 45, 'Male']
]
with open('students.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['name', 'age', 'gender']) # Write header row
for row in students:
writer.writerow(row)
在代码中,我们首先打开一个新的文件"students.csv",然后使用csv.writer函数将数据写入文件中。
注意,如果要写入文件的数据包含字符串中的逗号或换行符等特殊字符,需要使用csv模块中的特殊函数进行转义处理。可以使用csv.writer函数的"quotechar"和"quoting"参数来指定转义字符和转义方式。
使用csv模块,可以非常方便地读取和写入CSV文件,并将其转换为Python中的List。无论是读取还是写入,csv模块都提供了很多方便的函数和选项,让我们的工作变得更加简单。