问题标签 [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.
python - 将 tar.gz 转换为 zip 时出现 NameError
我从关于如何将 tar.gz 文件转换为 zip 文件的问题中得到以下代码。
但是当我运行它时,我得到了错误。
我应该在代码中进行哪些更改才能使其正常工作?
python - 在 tarfile 中区分来自不同驱动器的文件
我正在尝试使用该tarfile
库归档和压缩分布在多个驱动器上的多个目录。问题是tarfile
即使两个文件存储在不同的驱动器中也会合并路径。例如:
将创建一个包含以下文件的存档:
有没有办法创造这个?
python - Python tarfile:如何使用带有符号链接的 tar+gzip 压缩?
如何在 Python 3.4 中使用带有“跟随符号链接”功能的 tar+gzip 压缩?问题是:
- tarfile.open() 支持 "w:gz" 模式但不支持 "dereference" 选项
- tarfile.tarfile() 支持“取消引用”但不支持“w:gz”模式
代码:
python - python:如何将文件中的输入列表提供给 tarfile?
是否有将输入列表从列表文件提供给 tar 文件的参数?
我知道 cli “-T” 参数可以做到这一点,但 tarfile.py 有类似的东西吗?
我使用子进程,但我想在没有 cli 'tar' 命令的情况下处理它。
谢谢你。
python - 如何在路径中插入字符串和斜杠?
我正在尝试提取位于名为 srm01、srm02 和 srm03 的不同文件中的 tar.gz 文件。文件名必须在输入(字符串)中才能运行我的代码。我正在尝试做这样的事情:
我有这个错误信息:
我首先要确保我的代码找到 .tar.gz 文件。所以我试图在 glob 之后打印我的路径:
这给出了:
os.path.exists 方法告诉我我的文件不存在。
这给出了:假
有什么办法可以正确地完成这项工作吗?首先拥有正确路径的最佳方法是什么?
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() 的“名称”参数?
python - Python2.7:以并行模式解压文件(带线程)
我正在学习 Python 线程,同时尝试改进我的旧去皮脚本。
它的主要部分如下所示:
因此,目标不是一个一个地解压给定文件夹中的所有文件,而是同时以并行模式解压。是否可以?
输出:
在输出中可以看到该脚本创建线程,但它不会解压缩任何文件。有什么问题?
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)。
python - 使用 python 中的 tarfile 库从 tar 文件中获取单个文件
我正在尝试从 tar 存档中获取单个文件。我有 tarfile 库,我可以做一些事情,比如在具有正确扩展名的列表中查找文件:
像他们的例子:
这很棒,输出是:
如果我说只是查找 product.xml 则它不起作用。所以我尝试了这个:
它没有找到product.xml,因为我事先猜测了路径信息。我不知道如何仅检索该路径信息,这样我就可以在提取后获取我的 product.xml 文件(感觉就像我无论如何都在用艰难的方式做事)但是是的,我如何找出那个路径以便我可以连接在它是从 tar 文件中提取的唯一文件之后,它是否可以在我的其他文件函数中读取和加载该 xml 文件?
python - 试图限制正则表达式匹配范围
Python新手在这里,请原谅愚蠢的问题。我正在尝试从一组 gzip 文件中提取日志数据。数据跨越多行,因此我尝试从其压缩的 tar 文件中提取每个文件并将其作为单个对象读取,如下所示: 正则表达式:
我正在尝试匹配时间戳和日志文件中的另外两个组。如果逐行打印,日志数据看起来有点像这样:
我期待抓住这个:
我希望捕获的组是时间戳:(2016-12-16 20:43:4)
、wantThisUser=
( 4119185011005
) 和_operator=
( operator4
) 的值。
相反,正则表达式捕获目标行及其上方的行:
它从所需匹配项上方的行中提取时间戳和其他两组。请问如何将匹配限制在自己的行中?还是我以错误的方式接近这个?