【问题标题】:How do I read a file as the default user input?如何读取文件作为默认用户输入?
【发布时间】:2018-05-03 03:04:43
【问题描述】:

如何使用用户input() 函数在 python 3.6.x 中读取整个文件?就像算法挑战网站一样。例如:

  • 我有一个包含以下内容的文件:

    line 1
    line 2
    line 3
    end
    
  • 我的程序会做这样的事情:

    x = input()
    while x != 'end':
        print("I am at", x)
        x = input()
    
  • 然后我会有输出:

    I am at line 1
    I am at line 2
    I am at line 3
    

我想我需要用另一个程序(也可能是 python 或 OS 脚本)来包装我的 python 示例程序,该程序调用第一个将文件作为用户输入传递的程序。但是我该怎么做呢?

【问题讨论】:

    标签: python python-3.x io user-input


    【解决方案1】:

    这项工作的常用标准库工具是fileinput 模块:

    import fileinput
    
    for line in fileinput.input():
        print(f'working with line {line}')
    

    然后从 shell 中选择以下内容(它们都有效):

    $ python3 my_script.py my_file.txt
    $ python3 my_script.py < my_file.txt
    $ cat my_file.txt | python3 my_script.py
    

    【讨论】:

      【解决方案2】:

      通常此类挑战将通过标准输入管道输入,并通过标准输出预期响应。

      为此,请像这样从命令行运行您的命令;

      python program.py < input.txt
      

      如果要将脚本的输出保存到文件中,可以将其重定向到一个。

      python program.py < input.txt > output.txt
      

      【讨论】:

      • 谢谢,@Shadow!我希望我能把你和@wim 的答案说成是正确的。但我做不到,他的速度更快。哈哈哈......我的最好!
      • 从技术上讲,我快了 3 分钟(将鼠标悬停在“1 小时前已回答”上以查看时间戳:P 但我不介意任何一种方式。
      • 操作!你说得对。为了公平起见,我已将您的答案设置为正确。对不起,伙计们。
      猜你喜欢
      • 2013-06-07
      • 2021-10-29
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2020-03-20
      相关资源
      最近更新 更多