Skip to main content
 首页 » 编程设计

python之为什么 Python 脚本必须执行 2 次才能在 CSV 文件中获得完整的输出

2025年05月04日12bonelee

我有一个简单的 Python 脚本,可以在读取大型 CSV 文件后写入一个子 (CSV) 文件。

import csv 
import os 
 
large_file = "D:\Total_data.csv" 
 
with open(large_file, 'rb') as csvfile: 
 
     reader = csv.reader(csvfile, delimiter='|') 
 
     path = "D:/CSV_Files/" 
     if not os.path.exists(path): 
        os.makedirs(path) 
 
     writer1 = csv.writer(open(path+"A1_subfile"+".csv", 'wb'), delimiter = '|') 
 
     #writing data to the CSV file only if first column has value 'A1' 
     for row in reader: 
         if (row[0]=='A1'): 
             writer1.writerow(row) 
csvfile.close() 

我面临的问题是,当我第一次运行脚本时,有些行没有出现在 A1_subfile.csv 文件中(比如 100 行中只显示了 96 或 97 行)。

当我第二次运行完全相同的脚本时,所有行都显示在子文件中(现在可以看到所有 100 行)。

即使我在第一次执行后等待几分钟,我也没有在新的 CSV 文件中获得完整的输出。 如果我简单地执行代码 2 次,我可以立即看到完整的输出。

我已经搜索过,但无法解决这个问题。 请帮助克服这个问题。

请您参考如下方法:

我随机尝试了很多不同的方法来解决这个问题,有趣的是我发现如果我们为这段代码定义一个函数,然后调用该函数,问题就会得到解决。

def create_subfile(): 
 
     """ now same code as in question""" 
 
create_subfile(); 

有谁知道为什么一段代码通过函数调用执行时可以正常工作,而直接执行时却不行?