读取然后写入 CSV 文件行 - Python3

Reading then Writing Lines of CSV file - Python3

我最近编写了脚本来从县 属性 评估网站上抓取和下载我需要的不同文件。我现在想添加可以读取前 2 行并将它们写入新 CSV 文件的代码,以便在任何字段名称为 added/deleted/changed 时让我具有一定的可观察性。我想我已经很接近了,但是我 运行 遇到了一个我似乎无法弄清楚的错误。这是我的代码:

with open('OsceolaTaxParcels09012020.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)

    for i in range(2):
        rows = print(csv_reader.__next__())

    with open('Osceola_Field_Check09152020.csv', 'w') as new_file:
        csv_writer = csv.writer(new_file)

        for i in range(2):
            csv_writer.writerows(rows)

我不断收到的错误在最后一行,类型错误:writerows() 参数必须是可迭代的。 我认为 'rows' 变量是可迭代的,因为它包含原始 csv 文件的前两行,但它不是。

最终,我想编写代码来比较两个 CSV 文件,以便轻松检查字段更改;但那是另外一回事。

使用writerow

例如:

with open('OsceolaTaxParcels09012020.csv', 'r') as csv_file, open('Osceola_Field_Check09152020.csv', 'w', newline="") as new_file:
    csv_reader = csv.reader(csv_file)
    csv_writer = csv.writer(new_file)
 
    next(csv_reader) # Skip Header
    for _ in range(2):  # Iterate next 2 rows.
        csv_writer.writerow(next(csv_reader))    # Write Row

如果您尝试将前两行从一个文件写入另一个文件,则不需要使用 csv 模块。您可以使用 pathlib 进行 high-level 文件操作来读取一个文件并写入另一个文件。

from pathlib import Path

data = """\
a,b,c
1,2,3
0,0,1
"""

# Write example data to file.
p = Path("data.csv")
p.write_text(data)

# Read contents.
file_contents = p.read_text()
all_lines = file_contents.splitlines()
first_two_lines = all_lines[:2]

# Write to a new file.
output = Path("output.csv")
output.write_text("\n".join(first_two_lines))