Larry Chow 2023-09-16 17:38 采纳率: 0%
浏览 9

python执行linux指令,如何输入字符串?

我想用python实现执行scp指令,然后输入yes,然后还要输入密码,我该如何实现?请指教。

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-09-16 18:52
    关注

    引用 皆我百晓生 小程序回复内容作答:
    要用Python执行Linux指令并输入字符串,可以使用subprocess模块的Popen方法来实现。下面是一个示例代码,演示了如何执行scp指令并输入字符串。

    import subprocess
    
    # 定义要执行的指令
    command = 'scp your_file user@remote_host:your_directory'
    
    # 创建一个Popen对象,并设置stdin参数为subprocess.PIPE
    process = subprocess.Popen(command, stdin=subprocess.PIPE, shell=True)
    
    # 输入字符串"yes"并回车
    process.stdin.write(b'yes\n')
    
    # 输入密码并回车
    password = 'your_password'
    process.stdin.write(password.encode('utf-8') + b'\n')
    
    # 关闭stdin
    process.stdin.close()
    
    # 等待指令执行完成
    process.wait()
    
    # 获取返回结果
    output = process.returncode
    print(output)
    

    在这个示例中,首先定义要执行的指令,并创建一个Popen对象。然后,通过process.stdin.write()方法,将需要输入的字符串以字节的形式写入到stdin中,并在输入结束后关闭stdin。最后,通过process.wait()等待指令执行完成,并通过process.returncode获取返回结果。

    请注意,根据具体情况,您可能需要根据实际需要修改指令、字符串和其他参数。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月16日