簡體   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