我用C语言写了这段代码,它选择了一个文件来读取数据,然后用选择的数据运行程序。我想用Python写这个,我找到了一些教程,但所有的教程都提到用开关打印消息。你能帮我解决这个问题吗?
switch (alegere)
{
case 'a':
F=fopen("date1.txt", "r");//deschidere fisier pentru citire
break;
case 'b':
F=fopen("date2.txt", "r");
break;
case 'c':
F=fopen("date3.txt", "r");
break;
case 'd':
F=fopen("date4.txt", "r");
break;
case 'e':
F=fopen("date5.txt", "r");
break;
case 'f':
F=fopen("date6.txt", "r");
break;
case 'g':
F=fopen("date7.txt", "r");
break;
case 'h':
F=fopen("date8.txt", "r");
break;
case 'i':
F=fopen("date9.txt", "r");
break;
case 'j':
F=fopen("date10.txt", "r");
break;
default:
printf("Input invalid");
exit(1);
break;
}
你可以使用dict来做选择
file_paths = {
'a': 'date1.txt',
'b': 'date2.txt',
}
file_path = file_paths.get(alegere)
if not file_path:
printf("Input invalid");
exit(1)
with open(file_path, 'r') as fin:
# do sth
你可以用一个简单的字典
adict = {a:fonctionA, b:fonctionB, ...}
aDict['d'] = fonctionD
字典可以采取像fonctions这样的对象... ...
对于你的具体例子,你可以用这个。
OFFSET = 96
file_no = ord(alegere) - OFFSET
file_name = f"date{file_no}.txt"
if file_no in range(1, 11):
fh = open(file_name)
else:
print("Input invalid")
这个... OFFSET
帮助将字母映射到数字,即。a => 1, b => 2,..
. 由于 "a "在ASCII表中对应97,我们减去96。