该程序在执行时完全独立运行,但当从另一个脚本调用该脚本时,它会给出“EOFError:EOF when reading a line”
下面是我的代码: ''' #!/usr/bin/python 导入pdb #pdb.set_trace() 从lxml导入etree作为ET 导入argparse 导入操作系统 导入系统 从颜色导入*
filename = "/appl/OMS/Build_Details/build_details.xml"
parser = ET.XMLParser(remove_blank_text=True)
tree = ET.parse(filename, parser)
root = tree.getroot()
parser = argparse.ArgumentParser()
parser.add_argument("r", help="Provide Release Number")
parser.add_argument("b", help="Provide Build number")
parser.add_argument("oms", help="Provide OMS Storage Name")
parser.add_argument("pc", help="Provide PC version")
parser.add_argument("omni", help="Provide OMNI Storage Name")
args = parser.parse_args()
def display():
sys.stdout.write(RESET)
print "Displaying all existing releases in Build XML"
for elem in root.iter("Release"):
sys.stdout.write(GREEN)
print int(elem.attrib['number']),
print " "
def add_details():
counter=0
for elem in root.iter("Release"):
#print int(elem.attrib['number']),int(args.r)
if int(elem.attrib['number']) == int(args.r):
sys.stdout.write(YELLOW)
print "Release found!!",
counter=counter+1
break
if counter == 1:
for a in elem.iter('Build'):
#print a.attrib['number']
if int(a.attrib['number']) == int(args.b):
print "Build already exists"
break
else:
#Take backup od existing build xml
os.system('cp /appl/OMS/Build_Details/build_details.xml /appl/OMS/Build_Details/Backup/build_details.xml_$(date +"%Y%m%d-%H%M%S")')
#Create new OMS element
build_elem = ET.Element("Build", {"number": args.b})
oms_elem = ET.Element("OMS")
build_path_elem = ET.Element("Build_path")
build_path_elem.text = args.oms
pc_version_elem = ET.Element("Pc_version")
pc_version_elem.text = args.pc
oms_elem.append(build_path_elem)
oms_elem.append(pc_version_elem)
# OMNI element
omni_elem = ET.Element("OMNI")
build_path_omni_elem = ET.Element("Build_path")
build_path_omni_elem.text = args.omni
omni_elem.append(build_path_omni_elem)
build_elem.append(oms_elem)
build_elem.append(omni_elem)
elem.append(build_elem)
# Write to file
tree.write("/appl/OMS/Build_Details/build_details.xml",pretty_print=True) # After adding the new element
print "Adding build details"
else:
#Take backup of existing build xml
os.system('cp /appl/OMS/Build_Details/build_details.xml /appl/OMS/Build_Details/Backup/build_details.xml_$(date +"%Y%m%d-%H%M%S")')
# Create new Release Element
Release = ET.SubElement(root, "Release",number=args.r)
#Build elementq
Build = ET.SubElement(Release, "Build", number=args.b)
OMS=ET.SubElement(Build,"OMS")
ET.SubElement(OMS,"Build_path").text =args.oms
ET.SubElement(OMS,"Pc_version").text =args.pc
OMNI=ET.SubElement(Build,"OMNI")
ET.SubElement(OMNI,"Build_path").text =args.omni
tree.write("/appl/OMS/Build_Details/build_details.xml",pretty_print=True) # After adding the new element
sys.stdout.write(YELLOW)
print "Release details added"
def delete():
sys.stdout.write(RESET)
release_number = int(input("Enter the release number you want to delete or else enter 0\n"))
for elem in root.iter("Release"):
if int(elem.attrib['number']) == int(release_number):
sys.stdout.write(YELLOW)
print "Release found"
root.remove(elem)
#Take backup od existing build xml
os.system('cp /appl/OMS/Build_Details/build_details.xml /appl/OMS/Build_Details/Backup/build_details.xml_$(date +"%Y%m%d-%H%M%S")')
tree.write("/appl/OMS/Build_Details/build_details.xml",pretty_print=True)
print "Delete complete"
def main():
#print "Calling add details"
add_details()
#print "calling display"
print "\n"
display()
#print "Calling delete "
print "\n"
delete()
#print "calling second display"
print "\n"
display()
sys.stdout.write(RESET)
main()
'''
请让我知道如何像其他人一样将delete函数的运行时输入作为参数传递。 我是python的新手,正在尝试这种语言
目前没有回答
相关问题 更多 >
编程相关推荐