如何向 csv 文件添加新数据列

发布于 2024-09-12 05:22:28 字数 263 浏览 3 评论 0原文

我正在将 csv 文件读取到变量 data 中,如下所示:

def get_file(start_file): #opens original file, reads it to array
    with open(start_file,'rb') as f:
        data=list(csv.reader(f))

data 是整个 csv 文件。如何向该数据添加额外的列?

I am reading a csv file into a variable data like this:

def get_file(start_file): #opens original file, reads it to array
    with open(start_file,'rb') as f:
        data=list(csv.reader(f))

data is the entire csv file. How do I add an extra column to this data?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

千鲤 2024-09-19 05:22:28

简短回答:在您最喜欢的编辑器中打开 CSV 文件并添加一列

长回答:首先,您应该使用 csv.reader 读取文件;它处理分割行、格式错误的行、引号引起来的所有细节。然后,将阅读器包装在另一种添加列的方法中。

def get_file( start_file )
    f = csv.reader( start_file )
        def data( csvfile ):
            for line in csvfile:
                 yield line + [ "your_column" ]
    return data( f )

编辑

正如您在其他问题中所问的那样:

def get_file( start_file )
    f = csv.reader( start_file )
        def data( csvfile ):
            for line in csvfile:
                line[ 1 ] += "butter"
                yield line
    return data( f )

您使用的就像

lines = get_file( "my_file.csv" )
for line in lines:
    # do stuff

Short answer: open up the CSV file in your favourite editor and add a column

Long answer: well, first, you should use csv.reader to read the file; this handles all the details of splitting the lines, malformed lines, quoted commas, and so on. Then, wrap the reader in another method which adds a column.

def get_file( start_file )
    f = csv.reader( start_file )
        def data( csvfile ):
            for line in csvfile:
                 yield line + [ "your_column" ]
    return data( f )

Edit

As you asked in your other question:

def get_file( start_file )
    f = csv.reader( start_file )
        def data( csvfile ):
            for line in csvfile:
                line[ 1 ] += "butter"
                yield line
    return data( f )

which you use like

lines = get_file( "my_file.csv" )
for line in lines:
    # do stuff
眉目亦如画i 2024-09-19 05:22:28

data 是字符串列表的列表,因此...:

for row, itm in zip(data, column):
  row.append(str(itm))

当然,您需要 column 的长度正确,因此您可能需要检查这一点,例如提出一个 exc if len(数据)!= len(列)。

data is a list of lists of strings, so...:

for row, itm in zip(data, column):
  row.append(str(itm))

of course you need column to be the right length so you may want to check that, eg raise an exc if len(data) != len(column).

风流物 2024-09-19 05:22:28

.append 一个值到 data 中每行的末尾,然后使用 csv.writer 写入更新的数据。

.append a value to the end of each row in data, and then use a csv.writer to write the updated data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文