问题标签 [tarfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2420 浏览

python - 将 tar.gz 转换为 zip 时出现 NameError

我从关于如何将 tar.gz 文件转换为 zip 文件的问题中得到以下代码。

但是当我运行它时,我得到了错误。

我应该在代码中进行哪些更改才能使其正常工作?

0 投票
2 回答
258 浏览

python - 在 tarfile 中区分来自不同驱动器的文件

我正在尝试使用该tarfile库归档和压缩分布在多个驱动器上的多个目录。问题是tarfile即使两个文件存储在不同的驱动器中也会合并路径。例如:

将创建一个包含以下文件的存档:

有没有办法创造这个?

0 投票
1 回答
1653 浏览

python - Python tarfile:如何使用带有符号链接的 tar+gzip 压缩?

如何在 Python 3.4 中使用带有“跟随符号链接”功能的 tar+gzip 压缩?问题是:

  • tarfile.open() 支持 "w:gz" 模式但不支持 "dereference" 选项
  • tarfile.tarfile() 支持“取消引用”但不支持“w:gz”模式

代码:

0 投票
0 回答
55 浏览

python - python:如何将文件中的输入列表提供给 tarfile?

是否有将输入列表从列表文件提供给 tar 文件的参数?

我知道 cli “-T” 参数可以做到这一点,但 tarfile.py 有类似的东西吗?

我使用子进程,但我想在没有 cli 'tar' 命令的情况下处理它。

谢谢你。

0 投票
3 回答
840 浏览

python - 如何在路径中插入字符串和斜杠?

我正在尝试提取位于名为 srm01、srm02 和 srm03 的不同文件中的 tar.gz 文件。文件名必须在输入(字符串)中才能运行我的代码。我正在尝试做这样的事情:

我有这个错误信息:

我首先要确保我的代码找到 .tar.gz 文件。所以我试图在 glob 之后打印我的路径:

这给出了:

os.path.exists 方法告诉我我的文件不存在。

这给出了:假

有什么办法可以正确地完成这项工作吗?首先拥有正确路径的最佳方法是什么?

0 投票
1 回答
275 浏览

python - Python:如何在 add() 的过滤方法中访问 tarfile.add() 的 'name' 参数?

我想在使用tarfile(python 3.4)创建 tar(gz) 文件时过滤子目录(跳过它们)。

磁盘上的文件:

  • /home/myuser/temp/test1/
  • /home/myuser/temp/test1/home/foo.txt
  • /home/myuser/temp/test1/thing/bar.jpg
  • /home/myuser/temp/test1/lemon/juice.png
  • /home/myuser/temp/test1/

试图压缩/home/myuser/temp/test1/.tarfile.add()

我使用有路径和无路径模式。使用完整路径可以,但是使用短路径我有这个问题: 目录排除不起作用,因为 tarfile.add() 将arcname参数传递给过滤方法 - 而不是name参数!

archive.add(entry, arcname=os.path.basename(entry), filter=self.filter_general)

例子:

文件:/home/myuser/temp/test1/thing/bar.jpg ->arcname = test1/thing/bar.jpg

所以因为/home/myuser/temp/test1/thing元素在exclude_dir_fullpath,过滤方法应该排除这个文件,但不能因为过滤方法得到test1/thing/bar.jpg

如何在过滤器方法中访问 tarfile.add() 的“名称”参数?

0 投票
1 回答
787 浏览

python - Python2.7:以并行模式解压文件(带线程)

我正在学习 Python 线程,同时尝试改进我的旧去皮脚本。

它的主要部分如下所示:

因此,目标不是一个一个地解压给定文件夹中的所有文件,而是同时以并行模式解压。是否可以?

输出:

在输出中可以看到该脚本创建线程,但它不会解压缩任何文件。有什么问题?

0 投票
1 回答
408 浏览

python - Python 3.5 tarfile 库 lzma compresslevel

使用 tarfile 库时真的没有办法为 lzma 压缩设置压缩级别吗?我已阅读以下内容:

对于模式 'w:gz'、'r:gz'、'w:bz2'、'r:bz2'、'x:gz'、'x:bz2',tarfile.open() 接受关键字参数 compresslevel(默认9) 指定文件的压缩级别。

所以文档显然告诉我没有,因为这里缺少'w:xs'。

但是那样的话,怎么先写一个tarfile,然后用lzma库把tarfile转成lzma呢?所有这些都必须使用磁盘存储来完成(文件太大而无法将其全部存储在内存中,我们说的是 2-4gb tarfile)。

0 投票
2 回答
566 浏览

python - 使用 python 中的 tarfile 库从 tar 文件中获取单个文件

我正在尝试从 tar 存档中获取单个文件。我有 tarfile 库,我可以做一些事情,比如在具有正确扩展名的列表中查找文件:

像他们的例子:

这很棒,输出是:

如果我说只是查找 product.xml 则它不起作用。所以我尝试了这个:

它没有找到product.xml,因为我事先猜测了路径信息。我不知道如何仅检索该路径信息,这样我就可以在提取后获取我的 product.xml 文件(感觉就像我无论如何都在用艰难的方式做事)但是是的,我如何找出那个路径以便我可以连接在它是从 tar 文件中提取的唯一文件之后,它是否可以在我的其他文件函数中读取和加载该 xml 文件?

0 投票
1 回答
676 浏览

python - 试图限制正则表达式匹配范围

Python新手在这里,请原谅愚蠢的问题。我正在尝试从一组 gzip 文件中提取日志数据。数据跨越多行,因此我尝试从其压缩的 tar 文件中提取每个文件并将其作为单个对象读取,如下所示: 正则表达式:

我正在尝试匹配时间戳和日志文件中的另外两个组。如果逐行打印,日志数据看起来有点像这样:

我期待抓住这个:

我希望捕获的组是时间戳:(2016-12-16 20:43:4)wantThisUser=( 4119185011005) 和_operator=( operator4) 的值。

相反,正则表达式捕获目标行及其上方的行:

它从所需匹配项上方的行中提取时间戳和其他两组。请问如何将匹配限制在自己的行中?还是我以错误的方式接近这个?