Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果存在,则获取修订值;如果不存在,则获取默认修订值_Python - Fatal编程技术网

Python 如果存在,则获取修订值;如果不存在,则获取默认修订值

Python 如果存在,则获取修订值;如果不存在,则获取默认修订值,python,Python,输入:- 错误:- import shlex import os import sys import json import fileinput import pwd import itertools import subprocess from subprocess import Popen, PIPE, STDOUT import xml.etree.ElementTree as ET import re def manifest_data (name): pattern = r

输入:-

错误:-

import shlex
import os
import sys
import json
import fileinput
import pwd
import itertools
import subprocess
from subprocess import Popen, PIPE, STDOUT
import xml.etree.ElementTree as ET
import re


def manifest_data (name):
    pattern = re.compile('refs/heads/(.*)')
    tree = ET.parse('.repo/manifests/default.xml')
    root = tree.getroot()
    project = root.find("./project[@name='%s']" % name)
    revision = project.get('revision')
    res = pattern.match(revision)
    return res.group(1)

def main ():
    branch_name = "jb_2.5.4"
    print "branch_name"
    print branch_name
    projects = ['platform/vendor/google/proprietary/widevine','platform/vendor/google/proprietary/bluetooth']
    for project in projects :
        branch = manifest_data(project)
        print branch

if __name__ == '__main__':
    main()
文件“branch_manifest.py”,第35行,在
main()
文件“branch_manifest.py”,第32行,主目录
分支=清单数据(项目)
清单数据中第18行的文件“branch_manifest.py”
project=root.find(“./project[@name='%s']%name)
文件“/usr/lib/python2.6/xml/etree/ElementTree.py”,第330行,在find中
return ElementPath.find(self,path)
文件“/usr/lib/python2.6/xml/etree/ElementPath.py”,第186行,在find中
return _compile(path).find(element)
文件“/usr/lib/python2.6/xml/etree/ElementPath.py”,第176行,在编译中
p=路径(路径)
文件“/usr/lib/python2.6/xml/etree/ElementPath.py”,第93行,在__
“预期的路径分隔符(%s)”%(操作或标记)
SyntaxError:应为路径分隔符([)

它在python2.7中运行良好,但在python2.6中得到了相同的例外


您可以重新引用。它给出了一个答案:python2.6不支持像
/project[@name='%s'这样的语法

当我用数据运行代码时,我得到一个
解析错误:文档元素后的垃圾:第2行,第0列
,因为这是一个XML片段,不是一个完整的文档。如果我将它包装在一个外部标记中,使它成为一个完整的文档,我根本不会得到那个错误;我得到一个成功,然后在
res=pattern.match上出现一个错误(修订)
因为
修订版
。请给我们一些代码和数据,这些代码和数据可以重现您想要调试的问题,或者我们无法调试它。从您的错误中,我猜无论您实际为
名称
传递什么,都会给您一个无意义的XPath查询。例如,可能其中有一个撇号?一个简单的帮助调试的方法是打印出
“/project[@name='%s']”%name
位于尝试使用它的行之前。它在python2.7中运行良好,但在python2中遇到了相同的异常。6@all-我更新了输入以重现错误..我正在使用python 2运行。7@user2639990,确保您使用的是python 2.7来运行程序。您在上面粘贴的异常会从/usr/lib/python2.6/xml/et引发异常ree/元素路径。py@user2639990您确定正在运行2.7吗?
/usr/lib/python2.6/xml/etree/ElementPath.py
看起来像是指Python 2.6模块
import shlex
import os
import sys
import json
import fileinput
import pwd
import itertools
import subprocess
from subprocess import Popen, PIPE, STDOUT
import xml.etree.ElementTree as ET
import re


def manifest_data (name):
    pattern = re.compile('refs/heads/(.*)')
    tree = ET.parse('.repo/manifests/default.xml')
    root = tree.getroot()
    project = root.find("./project[@name='%s']" % name)
    revision = project.get('revision')
    res = pattern.match(revision)
    return res.group(1)

def main ():
    branch_name = "jb_2.5.4"
    print "branch_name"
    print branch_name
    projects = ['platform/vendor/google/proprietary/widevine','platform/vendor/google/proprietary/bluetooth']
    for project in projects :
        branch = manifest_data(project)
        print branch

if __name__ == '__main__':
    main()
  File "branch_manifest.py", line 35, in <module>
    main()
  File "branch_manifest.py", line 32, in main
    branch = manifest_data(project)
  File "branch_manifest.py", line 18, in manifest_data
    project = root.find("./project[@name='%s']" % name)
  File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
    return ElementPath.find(self, path)
  File "/usr/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
    return _compile(path).find(element)
  File "/usr/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
    p = Path(path)
  File "/usr/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
    "expected path separator (%s)" % (op or tag)
SyntaxError: expected path separator ([)