在Python中对文件使用开关

2024-10-03 11:18:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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;
    }

Tags: 文件数据代码程序txt教程读取数据case
3条回答

对于您的特定示例,您可以使用以下方法:

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

您可以使用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

词汇表可以接受像Fontions这样的对象

相关问题 更多 >