我编写了一个代码,该代码在某些文件名,位置等中使用参数(简化如下):
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
时。应该有一种方法让它循环遍历一组值/字符串而不是复制代码,但我无法找到它的任何相似之处。
如果我需要详细说明,请告诉我。
答案 0 :(得分:1)
一种方法是始终遍历整个程序,每种文件类型一次。如果指定了单个文件类型,则只需循环该类型,但如果指定了all
,则循环遍历所有类型。
例如,我们可以创建仅[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'