在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()函数来实现不同的输入源动态切换的功能。
