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

如何使用Python读取压缩文件并将其写入另一个文件?

如何解决如何使用Python读取压缩文件并将其写入另一个文件?

我有多个zip,都包含1个文件。这些zip文件中的文件为csv,包含记录分配。这是文件外观的一个示例:

2020-01-01-14:00:00,TM1,TM2,TM3,TM4,TM5,Name2,Name5,Name6,Name7
2020-01-01-14:00:00,Name5
2020-01-01-14:00:00,AGE,Name1,Name3,Name4,Name6
2020-01-01-14:00:00,Name7

我试图读取zip文件(不提取文件),并且基于某些条件,我想将每个文件的行写入新文件中。

这些是条件。仅当两个条件都成立时,我才会将该行读入一个文件

  1. 行中必须至少包含以下单词之一('Name1,Name2,Name3')
  2. 该行中的第五个单词必须为'AGE'

这是我的代码

import zipfile
import os
import pandas as pd
import csv

root = r'c:\data\FF\Desktop\archive\archive.zip'
destination = r'c:\data\FF\Desktop\archive'

with zipfile.ZipFile(root,'r') as my_zip:
    my_zip.extractall(destination)   #<----unzipping the file because I dont kNow how to read it directly :(
   
 
search_age = 'AGE'   
search_names = ['Name1','Name2','Name3']
 
for file in os.listdir(destination):
    if file.endswith('.txt'):   #<--- reading the unzipped file only.
        with open(file,'r') as my_file:
            reader = csv.reader(my_file)
            for row in reader:
                if search_age == row[4] and x for x in search_names in row: #<-- check for AGE and for 'Name1,Name2 or Name3'
                    with open('new_file.txt','w') as new_file:
                        for row in reader:
                            new_file.write(row) #<--- write the found lines to a new file.
                    

现在我有2个问题:

  1. 我收到了 if search_age == row[4] and x for x in search_names in row: ^ SyntaxError: invalid Syntax
  2. 我想直接读取zip文件,而不是先解压缩文件

我希望我的new_file看起来像这样:

2020-01-01-14:00:00,Name7

有人可以告诉我如何解决此问题?谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。