Python中文
首页
教程
问答
标签
搜索
登录
注册
用python模拟编码会话
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想模拟一个编码会话(对于视频录制会话:我不是触摸打字员:-)</p> <p>例如,我有这样一个shell脚本(<code>test.sh</code>)</p> <pre class="lang-sh prettyprint-override"><code>hello="Hello" world="world" echo $hello", "$world </code></pre> <p>我有这样一个python脚本(<code>Simulate_KeyPresses.py</code>):</p> <pre class="lang-py prettyprint-override"><code>import sys import time import subprocess def send_letter(letter): # V1 : simple print sys.stdout.write(letter) sys.stdout.flush() # V2: Test with expect (apt-get install expect) # cmd = """echo 'send "{}"' | expect""".format(c) # subprocess.run(cmd, shell=True) def simulate_keypresses(content): lines = content.split("\n") for line in lines: for c in line: send_letter(c) time.sleep(0.03) send_letter("\n") time.sleep(0.5) if __name__ == "__main__": filename = sys.argv[1] with open(filename, "r") as f: content = f.read() simulate_keypresses(content) </code></pre> <p>我可以这样调用:</p> <pre><code>python Simulate_KeyPresses.py test.sh </code></pre> <p>而且效果很好。 但是,当我把它输送到bash时,就像这样:</p> <pre><code>python Simulate_KeyPresses.py test.sh | /bin/bash </code></pre> <p>我明白了</p> <pre><code>Hello, world </code></pre> <p>也就是说,我只得到stdout和按键不显示。你知道吗</p> <p>我想看到的是:</p> <pre><code>hello="Hello" world="world" echo $hello", "$world Hello, world </code></pre> <p>我找到了一个相关的答案(<a href="https://stackoverflow.com/questions/23809327/simulate-interactive-python-session">Simulate interactive python session</a>),但它只处理python编码会话。你知道吗</p> <p>我试图使用<a href="https://likegeeks.com/expect-command/" rel="nofollow noreferrer">Expect</a>,但它没有按预期工作(也没有显示stdin)。你知道吗</p> <p>请帮忙!你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>将此添加到脚本中如何:</p> <pre><code>subprocess.call("./{}".format(filename), shell=True) </code></pre> <p>结果将是</p> <pre><code>hello="Hello" world="world" echo $hello", "$world Hello, world </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何为此数据帧创建散点图?
3 回答
如何为此编写Django模板
8 回答
如何为此表达式编写正则表达式?
8 回答
如何为步进电机选择合适的值?
1 回答
如何为每15分钟间隔的日期时间行(在新列中)添加标签?
3 回答
如何为每一列创建汇总表?
4 回答
如何为每一组groupbyPandas做滚动“得到假人”
8 回答
如何为每一行分别运行函数(python)?
5 回答
如何为每一行生成一个随机数?
6 回答
如何为每一轮将pytorch模型输出存储到numpy
8 回答
如何为每个.py-fi文件创建单独的zip文件
8 回答
如何为每个<li class=”“><a>找到最近的上述同级<li>?
1 回答
如何为每个CSV列生成特定的文件?
3 回答
如何为每个csv文件使用read_csv,即使它是空的?PythonPandas
8 回答
如何为每个CSV文件创建单独的Pandas数据帧并给它们起有意义的名称?
1 回答
如何为每个datetime和每个id创建一行?
4 回答
如何为每个Django型号选择赋予不同的颜色
6 回答
如何为每个Django模型实例安排一个周期性的芹菜任务?
6 回答
如何为每个Django视图设置一个装饰器?
3 回答
如何为每个for循环迭代分配变量
1 回答