如何将列表写入CSV文件的特定位置?

0 投票
1 回答
2262 浏览
提问于 2025-04-18 11:48

我想每周把我有的一个列表里的内容写入一个CSV文件。简单来说,我需要找到一种方法告诉Python,如果A列有内容,就把B列的内容写进去,依此类推,因为我想每周都写入同一个文件。以下是我目前的代码。

content = [1, 2, 3]
csvfile = "my/file/path"
column = zip(content)
with open(csvfile, 'a') as output:
    writer = csv.writer(output, dialect = "excel")
    for item in content:
        writer.writerow(item)

当我运行这个代码两次时,我的内容是追加到列的底部,而不是写入新的列。我是不是在指定模式上出错了?W模式是用来截断文件的,而R模式只是用来读取的,所以我有点困惑。

这是我运行两次后的效果:

Column A
1
2
3
1
2
3

1 个回答

1

当然可以!请看下面的内容:

在编程中,有时候我们需要让程序做一些重复的事情,比如循环执行某段代码。这个过程就像是给程序下达一个命令,让它不停地做某件事,直到满足某个条件为止。

例如,假设我们想让程序从1数到10,我们可以用一个循环来实现。程序会从1开始,每次加1,直到它数到10为止。这样,我们就不需要手动写出每一个数字,而是让程序自动完成。

循环的好处是可以节省时间和精力,特别是当我们需要处理大量数据时。通过设置条件,程序可以灵活地决定什么时候停止,这样就能高效地完成任务。

希望这个解释能帮助你理解循环的基本概念!

content = [1, 2, 3]
csvfile = "my/file/path"
existing = list(csv.reader(open(csvfile))) if os.path.exists(csvfile) else []
#first you have to read in your existing rows/cols
cols = zip(*existing)
#then you transpose it to get your columns
cols.append(content) #add your new content


with open(csvfile, 'w') as output:
    writer = csv.writer(output, dialect = "excel")
    for item in zip(*cols): #change columns back to rows
        writer.writerow(item)

撰写回答