合并两个按此格式分块的文件XXXXX.csv.gz_1_2.tar&;XXXXX.csv.gz_2_2.tar(使用python或pyspark)

合并两个按此格式分块的文件XXXXX.csv.gz_1_2.tar&;XXXXX.csv.gz_2_2.tar(使用python或pyspark),python,linux,gzip,tar,apache-zeppelin,Python,Linux,Gzip,Tar,Apache Zeppelin,我有两个文件的格式是XXXX.csv.gz_1_2.tar&XXXX.csv.gz_2_2.tar,我的目标是合并这些文件,以便能够解压完整的文件以获得csv文件 你能帮我吗 我尝试使用linux cmd中的tar或cat函数导入操作系统,如: import os cat="cat C:/Users/AAAA/XXXX.csv.gz_1_2.tar C:/Users/AAAA/XXXX.csv.gz_2_2.tar > C:/Users/AAAA/XXXX.csv.gz.tar " o

我有两个文件的格式是XXXX.csv.gz_1_2.tar&XXXX.csv.gz_2_2.tar,我的目标是合并这些文件,以便能够解压完整的文件以获得csv文件

你能帮我吗

我尝试使用linux cmd中的
tar
cat
函数导入操作系统,如:

import os

cat="cat C:/Users/AAAA/XXXX.csv.gz_1_2.tar C:/Users/AAAA/XXXX.csv.gz_2_2.tar > C:/Users/AAAA/XXXX.csv.gz.tar "

os.system(cat)
谢谢大家!

下面的代码(几乎)完全是从中窃取的,显然是使用了两个(或任意数量的)原始tar文件

import tarfile

old_tars = ("….tar", "….tar.gz", "….tar.xz", …)

with tarfile.open("new.tar", "w") as new_tar:
    for old_tar in (tarfile.open(tar_name, "r") for tar_name in old_tars):
        for member in old_tar.getmembers():
            new_tar.addfile(member, old_tar.extractfile(member.name))
        old_tar.close()

(当然,在现实世界的程序中,tar文件的名称不会硬编码到源代码中)。

您需要:1)untar/uncompress gz.tar以从两个文件中提取csv文件。(tar/gz是压缩和归档格式)2)连接两个csv文本文件,考虑是否存在任何标题行(在这种情况下,您显然需要删除第二个文件的标题行),然后(可选)3)对结果进行tar/压缩。在任何情况下,关于您的尝试,您都不能使用
cat
连接两个二进制文件(tar.gz文件是二进制的)。为什么
[linux]
标记和
C:
起始路径名?您可以很容易地修改“在python中将文件从一个tar添加到另一个tar”中的问题和答案中的代码这真的不是同一个问题,但谢谢你。