如何在 Python 中读取 CSV 文件?
CSV 文件代表逗号分隔值文件。它是一个纯文本文件,其中数据值用逗号分隔,因此以纯文本的形式表示表格数据,并借助逗号进行分隔。CSV 文件具有 .csv 扩展名。
以下是 CSV 文件的外观:
Sr.No,Name,City,Age 1,Rahul,Kolkata,21 2,Karan,Amritsar,23 3,Priya,Bangalore,20
要创建 CSV 文件,您只需在记事本中以上述格式编写文件,并将其保存为 .csv 扩展名即可。
在 Python 中读取 CSV 文件
存储在系统本地存储中的 csv 文件可以使用 Python 读取。
我们需要在 Python 中导入 csv 模块。然后我们需要以读取模式打开文件,因为我们需要从文件中读取数据。csv.reader() 函数用于读取 CSV 文件中的数据。csv.reader() 返回一个可迭代的读取器对象。我们需要遍历返回的可迭代读取器对象来处理 csv 文件的内容。
实现
让我们有一个名为“ttp.csv”的 csv 文件存储在我们的本地系统中。文件内容在上面的示例中显示。我们需要读取此文件的内容并逐行打印文件的内容。
示例
import csv with open('ttp.csv','r')as file: filecontent=csv.reader(file) for row in filecontent: print(row)
注意:确保 csv 文件和 Python 程序位于系统中的同一位置,即同一文件夹中。
输出
['Sr.No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
逐行解释
import csv - 需要在 Python 中导入 csv 模块,以便使用此模块中包含的函数来读取文件。
使用 open() 打开文件。open() 接受两个参数,文件名和要打开它的模式。这里的模式是“r”,因为我们需要读取文件。
使用 csv.reader() 读取文件内容。这将返回一个可迭代的读取器对象,该对象将返回到一个变量。
遍历 filecontents 以逐行打印文件内容。
csv 文件和读取它的 Python 程序必须位于同一位置。
要求 csv 文件和 Python 程序位于同一位置或本地系统中的同一文件夹中。如果文件位于其他位置,则会引发异常并给出以下输出。
Traceback (most recent call last): with open('ttp.csv','r')as file: FileNotFoundError: [Errno 2] No such file or directory: 'ttp.csv'
使用自定义分隔符读取 CSV 文件
逗号不是 csv 文件中唯一使用的分隔符。其他使用的分隔符是:、;、| 等。如果使用其他分隔符而不是逗号,我们需要相应地修改代码。
实现
假设在上面的 csv 文件中,使用的分隔符是“:”而不是逗号。因此代码将修改如下:
示例
import csv with open('ttp.csv','r')as file: filecontent=csv.reader(file,delimiter=':') for row in filecontent: print(row)
输出
['Sr', 'No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
代码中唯一的修改是在 csv.reader() 中指定 csv 文件中使用的分隔符。如果使用的分隔符是“|”,则需要在代码中将其指定为分隔符。
如果未指定,则默认情况下代码只会将逗号视为分隔符,并且由于文件中不存在逗号,因此整行将被视为单个项目。
如果未在上述代码中为上述使用“:”分隔符的文件指定分隔符,则会产生以下错误输出。
['Sr:No:Name:City:Age'] ['1:Rahul:Kolkata:21'] ['2:Karan:Amritsar:23'] ['3:Priya:Bangalore:20']
如上述输出所示,整行被视为单个项目。