gpt4 book ai didi

python - 如何在 python 中打开文件并向其中插入一个或多个输入?

转载 作者:太空狗 更新时间:2023-10-30 02:11:49 24 4
gpt4 key购买 nike

我一直在尝试编写一些“游戏”来帮助其他人学习 Python,但在我跳出头脑 Storm 阶段后,我就碰壁了。看,它涉及让一个脚本打开另一个脚本,然后向其中插入输入。例如:

username = raw_input('Insert username:')
password = raw_input('Insert password:')
if username == user:
if password == 1234:
print('Congratulations, you cracked it!')

这将是我的源代码。然后我会有另一个代码,我会在其中写一些东西来打开以前的脚本,插入“用户”,就好像我在命令提示符下自己输入它一样,然后尝试插入 0 和之间的每个数字,比如说, 10000。所以像这样:

for n in range(0, 10000)
[Insert script to open file]
[input 'user']
[input n]

我将如何继续编写最后一部分的代码?

最佳答案

subprocess 模块允许您运行另一个程序(包括脚本)并控制其输入和输出。例如:

import subprocess, sys
p = subprocess.Popen([sys.executable, 'thescript.py'], stdin=subprocess.PIPE)
p.stdin.write('user\n')
p.stdin.write('{}\n'.format(n))
p.wait()

如果您可以一次构建所有输入并将其作为单个字符串传递,则可以使用communicate

如果您还想捕获其输出,请为 stdout 添加另一个 PIPE

import subprocess
p = subprocess.Popen(['python', 'thescript.py'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out, err = p.communicate('user\n{}\n'.format(n))

有关其工作原理的详细信息,请阅读文档;这一切都解释得很好。 (但是,它组织并不完美;您可能想阅读开头部分,然后跳到“替换旧函数”,然后阅读“常用参数”,然后返回顶部并按顺序进行。)

如果你需要以任何比“发送我所有的输入,然后得到所有的输出”更复杂的方式与之交互,那将很难正确地做到,所以你应该看看第三方 pexpect 模块.

关于python - 如何在 python 中打开文件并向其中插入一个或多个输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com