python - 在 python 中自动从文件进行用户输入以进行测试

标签 python

我觉得我缺乏正确搜索问题答案的术语,因此任何正确方向的提示将不胜感激。

我有一个脚本,它需要多个 (>30) 用户输入来使用 jinja2 模板创建 json 文件。我经常需要向 python 代码和 jinja2 模板添加内容。对于每个更改,通常可能有 4-5 个不同的用户输入。

我不想每次都手动输入超过 30 个用户输入,而是希望将其自动化。例如,有没有办法创建一个列出超过 30 个用户输入的文本文件并迭代该文件?

示例如下:

    question1 = input('How much is 1+1?')
    question2 = input('Will I find an answer to my problem?')
    question3 = input('What should be the next question?')

然后包含答案的文件将如下所示:

    2
    If you are lucky
    No idea

如果可能的话,我希望只需要对代码进行最少的修改。

最佳答案

您正在寻找像 pickle 或 json 这样的东西。如果您选择在文本编辑器中编辑这些,Json 将会更加清晰。

import json

answers = {'question1': 2, 'question2': 'If you are lucky'}
with open('answer_log.txt', 'w') as file:
    file.write(json.dumps(answers))

然后加载您调用的文件:

with open('answer_log.txt', 'r') as file:
    answers = json.loads(file.read())

这将创建一个易于编辑的文本文件,如下所示:

'{"question1": 2...........}'

现在您有了一个 Python 字典,您可以轻松地迭代以自动化您的流程。

关于python - 在 python 中自动从文件进行用户输入以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58089040/

相关文章:

python - 从 python 读取 excel 工作表单元格的背景颜色?

python - 尝试除了在 python/selenium 中仍然抛出 NoSuchElementException 错误

python - 随着 x 轴将刻度向右移动一个,带有日期的 Bokeh 补丁图

python - Twisted SSE 服务器通过 pubsub 订阅 Redis

python - 将 crontab 与 django 一起使用

python - 追加列 pandas : TypeError: assign() takes 1 positional argument but 2 were given

python - 如何让我的变量脱离这个循环? - blender

python - Python 因式分解函数的结果不稳定

python - 计算函数的递归调用

python - z3py 将数据类型/枚举与字符串进行比较