Python 从CLI执行程序时,如何在代码中获取用户输入作为delete函数的参数

Python 从CLI执行程序时,如何在代码中获取用户输入作为delete函数的参数,python,Python,该程序在执行时完全独立运行,但当从另一个脚本调用该脚本时,它会给出“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(remo

该程序在执行时完全独立运行,但当从另一个脚本调用该脚本时,它会给出“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新手,正在尝试使用该语言

请在您的问题中包含完整的错误回溯在集中式工具服务器上调用Add_details.py在**********回溯上运行命令(最近一次调用最后一次):File“/*/*/*/*/*/*/*/*/*/*/*/Add_details.py”,第118行,在main()文件“/*/*/*/*/*/*/*/*/*/*/*/Add_details.py”的第113行,在主delete()文件“/*/*/*/*/*/*/Add_details.py”的第94行中,在delete release_number=int(输入(“输入要删除的版本号或输入0\n”))中,EOFError:EOF读取找到的行版本!!构建已经存在我的评论中的问题部分。编辑您的问题,注释中的代码很难阅读,也很容易丢失。可能是您正在使用Python 2运行代码,
input
尝试
eval
用户输入,这可能会导致此错误。检查真正使用的解释器。是,使用的版本是2.6.6