gpt4 book ai didi

Python:根据现有列将列添加到 CSV 文件

转载 作者:行者123 更新时间:2023-11-28 16:51:01 24 4
gpt4 key购买 nike

我已经编写了识别和解析我正在寻找的值所需的内容,我需要帮助将一列写入包含已解析值的 csv 文件(或新的 csv 文件)。这是一些伪代码/有点现实的 Python 代码,用于我正在尝试做的事情:

# Given a CSV file, this function creates a new CSV file with all values parsed
def handleCSVfile(csvfile):
with open(csvfile, 'rb') as file:
reader = csv.reader(file, delimiter=',', lineterminator='\n')
for row in reader:
for field in row:
if isWhatIWant(field):
parsedValue = parse(field)
# write new column to row containing parsed value

我已经编写了 isWhatIWantparse 函数。如果我需要编写一个全新的 csv 文件,那么我不确定如何同时打开这两个文件以及如何从一个文件读取和写入另一个文件。

最佳答案

我会这样做。我猜想 isWhatIWant() 是应该就地替换字段的东西。

import csv

def handleCSVfile(infilename, outfilename):
with open(infilename, 'rb') as infile:
with open(outfilename, 'wb') as outfile:
reader = csv.reader(infile, lineterminator='\n')
writer = csv.writer(outfile, lineterminator='\n')

for row in reader:
for field_index, field in enumerate(row):
if isWhatIWant(field):
row[field_index] = parse(field)
writer.writerow(row)

这种模式经常出现,导致排得很长。有时将打开和文件的逻辑分解为不同的函数会很有帮助,如下所示:

import csv

def load_save_csvfile(infilename, outfilename):
with open(infilename, 'rb') as infile:
with open(outfilename, 'wb') as outfile:
reader = csv.reader(infile, lineterminator='\n')
writer = csv.writer(outfile, lineterminator='\n')

read_write_csvfile(reader, writer)

def read_write_csvfile(reader, writer)
for row in reader:
for field_index, field in enumerate(row):
if isWhatIWant(field):
row[field_index] = parse(field)
writer.writerow(row)

这将代码模块化,使您可以更轻松地更改文件和格式的处理方式,这些文件和格式彼此独立于逻辑。

其他提示:

  • 不要将变量命名为 file,因为这是内置函数。在您最意想不到的时候隐藏这些名字会伤害您。
  • delimiter=',' 是默认值,因此您无需明确指定。

关于Python:根据现有列将列添加到 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com