微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在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 举报,一经查实,本站将立刻删除。