Python 使用linecache提取行的特定变量

Python 使用linecache提取行的特定变量,python,bash,getline,linecache,Python,Bash,Getline,Linecache,我目前正在使用pythonlinecache模块从给定的文本文档中获取特定的行,并使用该行创建一个新文件。例如,部分代码如下所示: cs = linecache.getline('variables.txt', 7) cs_1 = open("lo_cs", "w") cs_1.write(str(cs)) cs_1.close() 问题是在variables.txt中,第7行由以下公式给出: variable7 = 3423 比如说。但是,我希望新文件lou cs只包含实际值3423,而不

我目前正在使用pythonlinecache模块从给定的文本文档中获取特定的行,并使用该行创建一个新文件。例如,部分代码如下所示:

cs = linecache.getline('variables.txt', 7)
cs_1 = open("lo_cs", "w")
cs_1.write(str(cs))
cs_1.close()
问题是在variables.txt中,第7行由以下公式给出:

variable7 = 3423
比如说。但是,我希望新文件lou cs只包含实际值3423,而不是整行文本。此外,我想将整个“getline”命令插入到if循环中,以便在variable7为空时,执行另一个操作。是否有一种方法可以使用linecache检查“variable7=”后面的空格,以查看是否输入了任何内容,如果是,则仅获取该特定值或字符串

我知道,但并不真正理解bash脚本似乎使用“$”作为插入或调用给定文件的占位符。我想我需要实现类似的东西

我曾考虑在文本文件中提供指示,指示应该在下面的行中指定该值,以避免只选择一行的段,但这样会允许一个人意外地输入多余的分隔符,这将打乱所有后续的“getline”命令,根据需要选择的行


任何正确方向的帮助都将不胜感激

您可以使用以下方法包装所需的功能:

def parseline(l):
    sp = l.split('=')
    return sp[0], int(sp[1]) if len(sp) > 1 else None
或者,如果不需要变量名:

def parseline(l):
    sp = l.split('=')
    return int(sp[1]) if len(sp) > 1 and sp[1].strip() != '' else None
然后使用:

csval = parseline(linecache.getline('variables.txt', 7))

您可以稍后在csval上放置条件,查看它是否为“无”,如果为“无”,请执行另一个操作。

这正是我所需要的。非常感谢你!嗯,看起来这个方法有一些问题,我认为它是基于.txt文件中'variable7=34'内的空格。我获得返回'None'的唯一方法是将第二行写入如下:sp=l.split'='对于'variable7='和variable7='返回'None'。但是,如果事实上定义了一个整数,那么仍然会返回没有空格“None”的“variable7=23”,但如果它写为“variable7=23”,则会记录“23”。如果可能的话,我想消除这种对空间的敏感性。再次感谢,非常感谢。我真的很感谢你的帮助。