如何在Python中尽快写入多个文件?

问题描述

我在1个文件夹中有13个文件。我做了一些处理,过滤掉了一些数据,现在我试图将所有过滤后的数据写回到13个新文件中。。我认为我的代码运行得还不错,但是唯一的问题是它的运行方式和运行方式会变慢...

这是我的代码

tr_files = r'c:\data\FF\Desktop\7-sep'
zipped_tro_files = r'c:\data\FF\Desktop\TRO\Zipped'

at_set = {'Num1','Num2','Num3'}

for files in os.listdir(zipped_tro_files):
    zipped_path = os.path.join(zipped_tro_files,files)
    file_name = os.path.basename(files)
    
    lst = []
    with open(zipped_path,'r') as output:
        reader = csv.reader(output,delimiter = ',')
        for row in reader:
            if not set(row).intersection(at_set):
                continue
            if not row:
                continue
                      
            date_time = row[0]
            date_time = datetime.datetime.strptime(date_time,'%Y-%m-%dT%H:%M:%s.%f%z')
            
            begin_time = '00:00:00'
            end_time = '23:59:59'
                       
            begin_datetime = datum_dagbestand[0] + begin_time 
            begin_datetime = datetime.datetime.strptime(begin_datetime,'%Y%m%d%H:%M:%s')
            
            end_datetime = datum_dagbestand[0] + end_time
            end_datetime = datetime.datetime.strptime(end_datetime,'%Y%m%d%H:%M:%s')
            
            begin_datetime = pytz.utc.localize(begin_datetime)
            end_datetime = pytz.utc.localize(end_datetime)
            
            if date_time >= begin_datetime and date_time <= end_datetime:
                lst.append(row)
                   
     with open(tro_files + '\\' + file_name,'w') as out_2:
          writer_2 = csv.writer(out_2,')
          for line in lst:
               writer_2.writerow(line)

他们有一些更有效的方法吗?现在,大约需要60分钟才能过滤并写回1个文件。因此13 x aprox 60 =将近13小时大声笑。

请注意,在过滤之前文件在50.00kb到500.000kb之间(我猜每行介于100k和400k之间)。希望收到您的来信。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)