Skip to main content
 首页 » 编程设计

python之在 Python 中写入 csv 文件

2025年05月04日19webabcd

我的代码

i = 0 
while i < len(newsymbolslist): 
    time = 102030 
    data = 895.233 
    array = [time], [data] 
    with open('StockPrice.csv', 'wb') as file: 
        file_writer = csv.writer(file) 
        file_writer.writerow(array) 
        file.close() 
    i += 1 

我是 Python 的新手,所以我不是 100% 确定为什么前面的代码只将数据输入到第一行。我的猜测是,因为我每次迭代都打开文件,所以它不知道它不应该覆盖。我知道如何在理论上解决它(如果这是问题所在)。我只是在语法方面遇到了问题。

我的猜测:使用迭代 (var i) 来计算文件应该写入多少行。

请您参考如下方法:

with open('StockPrice.csv', 'wb') as f: 
    file_writer = csv.writer(f) 
    for s in newsymbolslist: 
        time = 102030 
        data = 895.233 
        array = [time], [data] 
        file_writer.writerow(array) 

您的第一个猜测是正确的:每次您以 'wb' 模式打开文件时,该文件实际上被删除(如果它存在)并创建一个新的空文件。因此,只有在通过 while 循环 的最后一次迭代期间写入的内容才会影响文件的内容。

解决方案是打开文件一次(在循环开始之前)。

请注意,使用 with-statement 打开文件保证当 Python 离开 with-block 时文件将被关闭。所以不需要自己调用f.close()。