Python 脚本读取具有白色 space 和 return 值的行

Python script to read a line that has white space and return value

我需要读取包含 const 关键字和 return version 作为值的行。

Version.php 文件中的内容

final class Version
{
    /**
     * The current Piwik version.
     * @var string
     */
    const VERSION = '2.0.3';
}

这是我编写的代码,但它没有 return 任何内容。我做错了什么?

def piwik_check(module):
    dirs = ["/var/www/piwik/core"]
    for dir_name in dirs:
        if os.path.exists(dir_name):
            readme_file = open("%s/Version.php" % dir_name)
            for line in readme_file.xreadlines():
                if line.startswith(str.strip("const")):
                    #version = str(line)
                    version = str(line).split()[1].strip()
                    return {'version': version}
                    break
                else:
                   continue
                readme_file.close()
with open(infile) as f:
    for line in f:
        if line.strip().startswith("const"):
             print(line.split()[3].rstrip(";"))
'2.0.3'

在你的函数中:

def piwik_check(module):
    dirs = ["/var/www/piwik/core"]
    for dir_name in dirs:
        if os.path.exists(dir_name):
            with open("{}/Version.php".format(dir_name)) as f:
                for line in f:
                    if line.strip().startswith("const"):
                        version = line.split()[3].rstrip(";")
                        return {"version":version} 

with 自动关闭你的文件,版本号是拆分后的 last/fourth 元素,如果你只想要数字 rstrip ; 并简单地遍历文件对象 f.