首页 > 解决方案 > Python:循环遍历所有参数选项

问题描述

我编写了一个代码,它在某些文件名、位置等中使用参数(简化如下):

file_type = sys.argv[1]
[...]
parent_folder = 'C:/path/to/dir/'
input_folder = parent_folder + file_type + '_inventory'
output_folder = parent_folder + file_type + '_export'

所以参数file_type可以是FOO, BAR, 或FOOBAR, 这将决定使用哪些目录/文件。但是,我一直在尝试找到一种更强大的方法来合并ALL到这个参数中。

目前,我有IF ELSE语句,其中一个选项将我的脚本复制多次,每个参数选择硬编码在其中;当file_type= ALL。应该有一种方法可以让它遍历一组值/字符串,而不是复制代码,但我无法找到它的任何相似之处。

如果我需要详细说明,请告诉我。

标签: pythonloopsparameters

解决方案


一种方法是始终循环遍历整个程序,每种文件类型一次。如果指定了单个文件类型,则仅循环该类型,但如果all指定了,则循环所有文件类型。

例如,我们可以创建一个 just 的单元素列表[sys.argv[1]],除非它是ALL

file_types = [sys.argv[1]] if sys.argv[1] != 'ALL' else ['FOO', 'BAR', 'FOOBAR']
for file_type in file_types:
    [...]
    parent_folder = 'C:/path/to/dir/'
    input_folder = parent_folder + file_type + '_inventory'
    output_folder = parent_folder + file_type + '_export'

推荐阅读