首页 > 解决方案 > xclip 没有从 pexpect 获取标准输入,或者 pexpect 没有发送?

问题描述

这个

import pexpect

def run(cmd, stdin):
    child = pexpect.spawn(cmd, encoding='utf-8')
    child.send(stdin)
    child.sendeof()

run('xclip -selection clipboard', 'lol')

应该将字符串复制lol到我的剪贴板中,以便我将它粘贴到Ctrl+周围v

但是,相反,我得到了echo -n '' | xclip -selection clipboard 将空文件作为 STDIN 传递到xclip.

为什么?


更新

这将打印lollxl而不是仅打印lxl

import pexpect

def run(cmd, stdin):
    child = pexpect.spawn(cmd, encoding='utf-8')
    child.send(stdin)
    child.sendeof()
    child.sendeof()
    x = child.read()
    child.wait()
    return x

x = run("sed --expression='s/o/x/g'", 'lol')
print(x)

标签: pythonexpectxclip

解决方案


推荐阅读