我目前正在用python在darcs上编写抽象,但是一旦我尝试将数据发送到我的存储库,存储库就会请求一个密钥。我在想,是否有可能使python使用stdin或其他方法将密钥发送到darcs,以模拟用户将要键入的内容,因为这样就可以了。我可以允许用户简单地将文件及其信息存储在其中,而python只会读取该文件并解开其内容。

def execute(cmd):
    proc = subprocess.Popen(cmd, shell=True)
    proc.wait()


是我用来启动darcs的代码吗? execute(“ darcs%s”%(parems))

最佳答案

使用subprocess module


  subprocess模块允许您生成新进程,连接到其输入/输出/错误管道,并获取其返回代码。


subprocess.Popen.communicate方法用于通信:


  Popen.communicate(input=None)
  
  与进程交互:将数据发送到stdin。从stdout和stderr读取数据,直到到达文件末尾。等待进程终止。可选输入参数应该是要发送给子进程的字符串,如果没有数据要发送给子进程,则为None。
  
  communication()返回一个元组(stdoutdata,stderrdata)。
  
  请注意,如果要将数据发送到进程的stdin,则需要使用stdin=PIPE创建Popen对象。同样,要在结果元组中获得除None以外的任何内容,您也需要提供stdout=PIPE和/或stderr=PIPE

关于python - Python,伪造标准输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4808138/

10-10 21:17
查看更多