用于读取具有空格和返回值的行的Python脚本

时间:2015-03-04 02:37:05

标签: python whitespace readline

我需要读取具有const关键字并返回版本的行作为值。

Version.php文件中的内容

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

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

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()

1 个答案:

答案 0 :(得分:0)

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自动关闭你的文件,版本号是分割后的最后一个/第四个元素,如果你只想要数字rstrip ;并简单地迭代文件对象f