从存档中连接tsv文件Python

问题描述:

我有多个包含多个.tsv文件的存档。我想要做的是提取这些文件中的一部分,并创建一个新的.tsv文件来合并/连接我选择的文件。尽管如此,我遇到的唯一解决方案是合并它们,但是与写入/ t而不是正确切换。这是我迄今为止所尝试的:从存档中连接tsv文件Python

for numbers in list: 
     file_name = numbers 
     zip_ref = zipfile.ZipFile(archive_name, 'r') 
     file_to_concat = zip_ref.read(file_name) 
     model_file.write(str(file_to_concat)) 

最后,在model_file中,我将有文本充满'\ t'并且没有选项卡。 我想我应该在某处使用'import csv'?我不知道该怎么做

+0

您可能会喜欢这个熊猫图书馆。 – Aaron

+0

你是什么意思y“正确挂牌”? '\ t'是[一个适当的选项卡](https://*.com/questions/4488570/how-do-i-write-a-tab-in-python) –

+0

我的意思是它写道“\ t “在文件中而不是标签 – Gimv13

以下操作将取出一个文件夹中的所有.zip文件,逐个提取文件作为TSV文件,并将它们写入组合输出TSV文件,其名称与.zip相同文件:

import zipfile 
import csv 
import glob 

for zip_filename in glob.glob('*.zip'): 
    csv_filename = "{}.csv".format(os.path.splitext(os.path.basename(zip_filename))[0]) 
    print "{} -> {}".format(zip_filename, csv_filename) 

    with zipfile.ZipFile(zip_filename, 'r') as zip_ref, open(csv_filename, 'wb') as f_csv: 
     csv_writer = csv.writer(f_csv, delimiter='\t') 

     for zip_member in zip_ref.namelist(): 
      print " {}".format(zip_member) 
      with zip_ref.open(zip_member) as f_zip: 
       csv_writer.writerows(csv.reader(f_zip, delimiter='\t'))