Python CSV写入行:Python CSV写入多行详细操作

2021年7月21日02:58:48 发表评论 2,904 次浏览

简介:在本Python CSV读写教程中,你将学习如何使用Python内置的CSV模块将单行或多行数据写入CSV文件,包括CSV写入行和Python CSV写入多行的代码实现步骤。

Python CSV写入行的步骤

Python要将数据写入CSV文件,你需要遵循以下步骤:

  • 首先,使用open()函数打开要写入的CSV文件(w模式)。
  • 其次,通过调用CSV模块的writer()函数创建一个CSV写入器对象。
  • 第三,通过调用CSV写入器对象的writerow()或writerws()方法实现Python CSV一行一行写入
  • 最后,在完成向文件写入数据后关闭文件。

以下代码演示了上述步骤并实现了Python CSV写入行:

import csv

# 以写模式打开文件
f = open('path/to/csv_file', 'w')

# 创建CSV写入器
writer = csv.writer(f)

# 向CSV文件写入一行
writer.writerow(row)

# 关闭文件
f.close()

如果你使用with语句,它会更短,这样你就不需要调用close()方法来显式关闭文件:

import csv

# 以写模式打开文件
with open('path/to/csv_file', 'w') as f:
    # 创建CSV写入器
    writer = csv.writer(f)

    # 向CSV文件写入一行
    writer.writerow(row)

如果处理的是非ascii字符,则需要在开放函数中指定字符编码。

下面举例说明如何将UTF-8字符写入CSV文件:

import csv

# 以写模式打开文件
with open('path/to/csv_file', 'w', encoding='UTF8') as f:
    # 创建CSV写入器
    writer = csv.writer(f)

    # 向CSV文件写入一行
    writer.writerow(row)

Python CSV写入行的简单例子

下面的例子演示了Python如何将一个数据行写入到CSV文件中:

import csv  

header = ['name', 'area', 'country_code2', 'country_code3']
data = ['Afghanistan', 652090, 'AF', 'AFG']

with open('countries.csv', 'w', encoding='UTF8') as f:
    writer = csv.writer(f)

    # 写入头
    writer.writerow(header)

    # 写入数据
    writer.writerow(data)

如果你打开countries.csv,你会看到一个问题。它有一个额外的空行之间的两个后续行:

Python CSV写入行:Python CSV写入多行详细操作

要删除空行,你需要像这样将关键字参数newline=''传递给open()函数:

import csv

header = ['name', 'area', 'country_code2', 'country_code3']
data = ['Afghanistan', 652090, 'AF', 'AFG']


with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.writer(f)

    # 写入头
    writer.writerow(header)

    # 写入数据
    writer.writerow(data)

输入如下:

Python CSV写入行:Python CSV写入多行详细操作

Python CSV写入多行的操作步骤

Python CSV要一次性写入多行时,可以使用CSV写入器对象的writerows()方法。

下面演示如何使用writerows()方法将多行写入到countries.csv文件中:

import csv

header = ['name', 'area', 'country_code2', 'country_code3']
data = [
    ['Albania', 28748, 'AL', 'ALB'],
    ['Algeria', 2381741, 'DZ', 'DZA'],
    ['American Samoa', 199, 'AS', 'ASM'],
    ['Andorra', 468, 'AD', 'AND'],
    ['Angola', 1246700, 'AO', 'AGO']
]

with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.writer(f)

    # 写入头
    writer.writerow(header)

    # Python CSV写入多行数据
    writer.writerows(data)

使用DictWriter类写入CSV文件

如果CSV文件的每一行都是一个字典,则可以使用CSV模块的DictWriter类将字典写入CSV文件。

下面的例子演示了如何使用DictWriter类将数据写入CSV文件:

import csv

# csv头
fieldnames = ['name', 'area', 'country_code2', 'country_code3']

# csv data
rows = [
    {'name': 'Albania',
    'area': 28748,
    'country_code2': 'AL',
    'country_code3': 'ALB'},
    {'name': 'Algeria',
    'area': 2381741,
    'country_code2': 'DZ',
    'country_code3': 'DZA'},
    {'name': 'American Samoa',
    'area': 199,
    'country_code2': 'AS',
    'country_code3': 'ASM'}
]

with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(rows)

以上Python代码是如何给CSV写入多行的?下面是详细解释:

  • 首先,定义包含CSV文件的字段名和数据行的变量。
  • 接下来,通过调用open()函数打开要写入的CSV文件。
  • 然后,通过向它传递文件对象(f)和fieldnames参数,创建一个DictWriter类的新实例。
  • 然后,通过调用writeheader()方法写入CSV文件的头文件。
  • 最后,使用writerows()方法给CSV写入多行数据。

Python CSV读写总结

使用CSV Writer或DictWriter类将数据写入CSV文件。以上就是Python CSV写入行的基本操作介绍,包括Python CSV一行一行写入和CSV写入多行的代码实现,希望这些内容可以帮助到你!

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: