📜  python csv to list - Python (1)

📅  最后修改于: 2023-12-03 14:45:56.906000             🧑  作者: Mango

Python CSV转换为List

CSV(Comma Separated Values)格式是一种常见的文件格式,用于存储和交换数据。Python提供了内置的csv模块,可以很方便地读取和写入CSV文件。

读取CSV文件并转换为List

使用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文件中的数据类型

读取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"中。

将Python List写入CSV文件

使用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模块都提供了很多方便的函数和选项,让我们的工作变得更加简单。