使用python获取file.txt的参数

2024-09-24 00:31:12 发布

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

我试图得到一个.txt的参数,如下所示:

a=10
b=15
c=20

如何执行一个名为get()的函数,该函数从名为参数.txt参数b并返回15??你知道吗

它是建立一个模块,就像一个参数的getter。你知道吗

为了简化和解释信息:.txt conatains参数带有和int值。函数的作用是:获取与参数相关联的整数值。你知道吗


Tags: 模块函数txt信息参数get整数int
3条回答
def get(par):
    with open("parameters.txt",'r') as file:
        return next(e for e in file.readlines() if par in e).split("=")[1]

试试这个

def get(param):
    with open(filename, "r") as infile:     #Read file
        for line in infile:                 #Iterate over each line
            if line.startswith(param):      #Check if line starts with input param
                return line.split("=")[1]   #Return Value
print(get("b"))

既然您说要“构建一个像参数获取程序一样工作的模块”,就应该将整个文件解析到一个内部字典中:

class Config(dict):
    def __init__(self, file_name):
        with open(file_name) as f:
            for line in f:
                key, value = line.strip().split("=")
                self[key] = value

用法示例:

c = Config("test.txt")
print(c)
# {'a': '10', 'b': '15', 'c': '20'}
print(c['b'])
# 15

如果所有的值都是数字,那么您可能需要修改它以执行self[key] = float(value)或类似操作。否则,您可能需要定义try_parse_numeric函数:

def try_parse_numeric(s):
    try:
        return int(s)
    except ValueError:
        pass
    try:
        return float(s)
    except ValueError:
        pass
    return s

class Config(dict):
    def __init__(self, file_name, value_parser=try_parse_numeric):
        self.value_parser = value_parser
        with open(file_name) as f:
            for line in f:
                key, value = line.strip().split("=")
                self[key] = self.value_parser(value)

如果它变得更复杂,你可能想使用^{}而不是自己滚动。你知道吗

相关问题 更多 >