繁体   English   中英

在python中将tar.gz打印到stdout

[英]print tar.gz to stdout in python

我可以使用创建一个.tar.gz文件

with tarfile.open(archive, 'w:gz') as archive_fd:
    add_files_to_tar('.', archive_fd)

而且效果很好。 但是有时候我想将这些文件打印到stdout (如果我通过SSH执行命令)

有谁知道如何做到这一点? 我以前的bash代码是这样的

tar -czf - $files >&1

要么

tar -czf - $files >/filename

认为您可以在流模式下打开tar文件并将其传递给sys.stdout:

import sys
with tarfile.open(fileobj=sys.stdout, mode='w|gz') as archive_fd:
    add_files_to_tar('.', archive_fd)

tarfile文档说完成后不会关闭stdout。

在模式字符串中使用fileobj=sys.stdout和管道符号(指示流模式)。

这类似于tar czf - .

with tarfile.open(archive, 'w|gz', fileobj=sys.stdout) as archive_fd:
    archive_fd.add('.')

这已在Linux上进行了测试; 我认为它将在Windows上失败。 有关此问题的解决方案,请参见此问题。

参考文献:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM