b***i 发帖数: 3043 | 1 本来有个流程,是通过bash实现的,
1. 读取一个远程文件 result=$()
2. 把这个文件内容给一个可执行程序
echo $result | my_command
现在需要用python完成同样的功能。问题,如果是两个调用subprocess,这个result变
量还能保留到第二行吗?
还是要一次完成?比如result=$() && ...
有什么别的办法吗?不想把result保留到文件里,因为有审查者提出这是一个安全问题
。留在内存是可以接受的。 |
C*****l 发帖数: 1 | 2 应该没问题吧,加上shell=True,大不了你可以先把这两行command写到一个文件里面取
【在 b***i 的大作中提到】 : 本来有个流程,是通过bash实现的, : 1. 读取一个远程文件 result=$() : 2. 把这个文件内容给一个可执行程序 : echo $result | my_command : 现在需要用python完成同样的功能。问题,如果是两个调用subprocess,这个result变 : 量还能保留到第二行吗? : 还是要一次完成?比如result=$() && ... : 有什么别的办法吗?不想把result保留到文件里,因为有审查者提出这是一个安全问题 : 。留在内存是可以接受的。
|
f*******t 发帖数: 7549 | 3 subprocess.run可以把stdout保存在变量里,很方便。
话说你们写代码不看语言自带的文档吗,这种常用功能都写的明明白白,又不是什么天
顶星技术…… |
m******c 发帖数: 830 | 4 Your shell command is suboptimal. The variable $result is completely
unnecessary.
why not just use pipe:
command 1 | my command
or:
echo $(command 1) | my command
【在 b***i 的大作中提到】 : 本来有个流程,是通过bash实现的, : 1. 读取一个远程文件 result=$() : 2. 把这个文件内容给一个可执行程序 : echo $result | my_command : 现在需要用python完成同样的功能。问题,如果是两个调用subprocess,这个result变 : 量还能保留到第二行吗? : 还是要一次完成?比如result=$() && ... : 有什么别的办法吗?不想把result保留到文件里,因为有审查者提出这是一个安全问题 : 。留在内存是可以接受的。
|
b***i 发帖数: 3043 | 5 二进制的文件内容也行吗?就是说stdout的结果是二进制的16个字节,不一定是文本,
其中可能包含0, 32(空格)等所有的字节
【在 f*******t 的大作中提到】 : subprocess.run可以把stdout保存在变量里,很方便。 : 话说你们写代码不看语言自带的文档吗,这种常用功能都写的明明白白,又不是什么天 : 顶星技术……
|
b***i 发帖数: 3043 | 6 这也是一个办法。echo那个应该可以。主要是这个command 1是在远程机运行的,所以
得间接显示一下到本地。
【在 m******c 的大作中提到】 : Your shell command is suboptimal. The variable $result is completely : unnecessary. : why not just use pipe: : command 1 | my command : or: : echo $(command 1) | my command
|
f*******t 发帖数: 7549 | 7 stdout本来就是binary data呀,想转成str还要decode
【在 b***i 的大作中提到】 : 二进制的文件内容也行吗?就是说stdout的结果是二进制的16个字节,不一定是文本, : 其中可能包含0, 32(空格)等所有的字节
|
b***i 发帖数: 3043 | 8 那很好了,太方便了,就是利用python变量转移一下。
【在 f*******t 的大作中提到】 : stdout本来就是binary data呀,想转成str还要decode
|