python - 合并以这种格式分块的两个文件 XXXXX.csv.gz_1_2.tar 和 XXXXX.csv.gz_2_2.tar(使用 python 或 pyspark)

标签 python linux gzip tar apache-zeppelin

我有两个格式为 XXXX.csv.gz_1_2.tar 和 XXXX.csv.gz_2_2.tar 的文件,我的目标是合并这些文件以便能够按顺序解压缩完整文件获取 csv 文件。

你能帮帮我吗?

我尝试使用 linux cmd 中的 tarcat 函数和 import os,例如:

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)

谢谢!

最佳答案

下面的代码(几乎)完全是从 Add files from one tar into another tar in python 偷来的,明显适应使用两个(或任意数量)原始 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 文件的名称不会被硬编码到源代码中)。

关于python - 合并以这种格式分块的两个文件 XXXXX.csv.gz_1_2.tar 和 XXXXX.csv.gz_2_2.tar(使用 python 或 pyspark),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58501012/

相关文章:

node.js - 如何解析 Node 中的大型分隔文本文件

python - matplotlib 属性错误问题

python - Python 中的傅里叶变换

python - 在 matplotlib 中创建具有不同形状的子图

linux - 多个文件作为 bash 脚本中的参数

在 sysfs 中创建属性

python - 如何在 gnuplot-py 中设置图形标题的字体大小?

linux - Linux ld-linux.so 的版本化符号

java - Spring gzip 与 Tomcat gzip

wcf - 在 Silverlight 中向 WCF 添加压缩的最简单方法是什么?