【发布时间】:2023-10-15 00:56:01
【问题描述】:
我正在尝试在远程 linux 机器上将 Python 字符串 (yaml) 写入 /path/to/foo.yaml。
这里有一些复杂的 Python/bash 互操作。
我目前的解决方案是这样的:
ip = '1.2.3.4'
yaml = '...'
src = f'tmp-{i}.yaml'
dst = f'root@{ip}:/path/to/foo.yaml'
with open(src, 'w') as f:
f.write(yaml)
cmd = f'scp -o StrictHostKeyChecking=no -i mykey.pem {src} {dst}'
subprocess.run(cmd.split())
所以我正在写入一个临时文件,然后使用 bash-in-Python scp-ing 该临时文件。
是否有更紧凑的解决方案可以避免创建临时文件?
警告:我的解决方案可能对带有空格的文件名没有弹性,所以不要盲目使用。如果您正在处理带有空格的文件名,请考虑不要这样做。
警告:google StrictHostKeyChecking 如果您将此代码用于需要安全的任何事情
【问题讨论】:
标签: python linux string bash scp