- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要执行与此 shell 脚本等效的操作:
ssh visarend.solasistim.net tar -c /home/amoe/episodes | tar -vx -
但是使用 Fabric 2.x。这是我的尝试,但我不确定问题是什么。
remote_path = "/home/amoe/episodes"
c = fabric.Connection('visarend.solasistim.net')
with subprocess.Popen(['tar', '-vx'], stdin=subprocess.PIPE) as reader_proc:
c.run(
"tar -c %s" % (remote_path,),
out_stream=reader_proc.stdin
)
这给了我错误:
File "/usr/local/lib/python3.5/dist-packages/invoke/runners.py", line 525, in write_our_output
stream.write(encode_output(string, self.encoding))
TypeError: a bytes-like object is required, not 'str'
还有一些other errors 。我知道这可能是因为我从 reader_proc.stdin 获取的流是字节流,而不是 unicode 流。但我不明白为什么run需要一个 unicode 流,或者正确的更改是什么才能使其工作。
最佳答案
我无法评论为什么假设通过 Fabric.Connection.run() 执行的任务会生成文本流,但是,由于 latin-1 的存在
编码,打包成文本流对象的实际二进制流可以被重新解释为二进制流,而不会出现任何失真:
import fabric
import subprocess
from io import TextIOWrapper
remote_path = "/home/amoe/episodes"
c = fabric.Connection('visarend.solasistim.net')
with subprocess.Popen(['tar', '-vx'], stdin=subprocess.PIPE) as reader_proc:
c.run(
"tar -c %s" % (remote_path,),
out_stream=TextIOWrapper(reader_proc.stdin, encoding='latin-1'),
encoding='latin-1'
)
关于python - Fabric 2.x : tar and untar through pipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54596420/
这似乎是一个非常简单的问题,但对于我来说我无法弄清楚。 我想做的就是解压缩并提取 tar.gz 文件的内容。在 godoc 上,似乎有一个函数的引用正是这样做的。 (https://godoc.org
不久前,我使用 Linux“tar -cf”命令压缩了一个应用程序。当时一些文件名使用的是不同的语言。 现在,当我使用“tar -xf”解压缩时,它会将另一种语言的文件名显示为问号。 有没有办法在我解
我正在编写一个 iPhone 应用程序,它从网络服务器下载一个 tar-gzip 压缩文件,然后需要解压该文件,以便将其复制到应用程序的 Documents 文件夹中。 我使用 tar/gzip 是因
我是 R 编程语言的新手,并且遇到了一些基本问题。我想解压缩一个文件,但它对我不起作用。 这是我输入的代码: untar("CD_data.tar", exdir="data") 然后它返回以下错误消
如何在不使用 exec('tar') 或任何其他命令的情况下使用纯 PHP 在 php 中解压缩文件? 我的问题如下;我有一个 26mb 的 tar.gz 文件需要上传到我的服务器并解压缩。我试过用n
我想要执行与此 shell 脚本等效的操作: ssh visarend.solasistim.net tar -c /home/amoe/episodes | tar -vx - 但是使用 Fabri
我目前正在将 CVS 存储库转换为多个 git 存储库。 cvs2git 进程很好,但是我在运行 filter-branch 命令时遇到了问题。我使用简单的脚本测试命令,因为主存储库大小为 4Go,提
情况是这样的。我有一个需要提取和设置的 URL 列表。它都是变量驱动的,但在我提取后,我不知道我的文件夹将被称为什么。如果我不知道它叫什么,我就不能 CD 进去。 $DL_DIR = /opt/ $U
尝试安装 Bower 时出现此错误。这是一个错误还是我做错了? 如果需要,我还有 4707 行 npm-debug.log 文件... 谢谢! 这是尝试在本地安装 Bower 时终端的转储,但我在全局
我正在从 USGS 订购一大堆陆地卫星场景,这些场景作为 tar.gz 存档。我正在编写一个简单的 python 脚本来解压缩它们。每个文件包含 15 张大小为 60-120 MB 的 tiff 图像
我在 EC2 Linux AMI 实例上尝试使用 CPAN 安装各种 CPAN 模块。从典型安装开始(YAML 只是一个示例)... sudo yum install perl-CPAN Packag
我在 Mac 上创建了一个新用户并尝试了此操作。这通常适用于我的其他帐户。这个新用户也是管理员。 npm ERR! tar.unpack untar error /Users/test/.npm/
我有一个包含小型 git 存储库的目录。 git status 和 gitk --all,显示没有未提交的更改。 如果我用 tar/compress 这个目录: tar czf git-repo.ta
我是一名优秀的程序员,十分优秀!