欢迎访问宙启技术站
智能推送

在Python中使用InputSource()函数实现输入源的动态切换

发布时间:2024-01-05 03:57:32

在Python中可以使用InputSource()函数实现在程序运行过程中动态切换输入源的功能。InputSource()函数可以接受不同的参数作为输入源,并根据参数的不同执行不同的输入操作。

以下是一个示例代码,展示如何使用InputSource()函数实现输入源的动态切换:

def input_from_file(file_name):
    with open(file_name, 'r') as file:
        lines = file.readlines()
    return lines

def input_from_stdin():
    lines = []
    while True:
        line = input()
        if line == '':
            break
        lines.append(line)
    return lines

def main(input_source):
    lines = input_source()
    # 在这里根据需要处理输入的内容
    for line in lines:
        print(line)

if __name__ == '__main__':
    # 用户可以通过命令行参数指定输入源,如:python program.py file input.txt
    if len(sys.argv) > 1:
        file_name = sys.argv[1]
        input_source = lambda: input_from_file(file_name)
    else:
        input_source = input_from_stdin

    main(input_source)

在上面的示例代码中,首先定义了两个函数input_from_file()input_from_stdin()来分别从文件和标准输入中获取输入。input_from_file()函数接受一个文件名作为参数,使用with open()方法读取文件的内容,并返回一个包含所有行的列表。input_from_stdin()函数使用一个无限循环来获取标准输入的内容,直到遇到一个空行为止,并返回一个包含所有行的列表。

然后,定义了一个名为main()的函数来处理输入的内容。在该函数中,首先使用input_source()函数获取输入,然后根据需要对输入内容进行处理。这里的处理过程只是简单地将每一行内容打印出来。

最后,在主程序中通过命令行参数或者标准输入来选择输入源。如果用户在命令行中指定了文件名,则使用input_from_file()函数作为输入源;否则使用input_from_stdin()函数。然后将选择的输入源作为参数传递给main()函数进行处理。

使用示例:

1. 从文件中读取输入,假设文件名为input.txt:

   python program.py input.txt
   

2. 从标准输入中读取输入:

   python program.py
   

在上述示例的基础上,你可以根据实际需求定义不同的输入源函数,并将其作为参数传递给main()函数来实现不同的输入源动态切换的功能。