xclip无法从pexpect获取stdin,还是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,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)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)