Python 我的输出文件中的数据没有';t打印它应有的所有结果

Python 我的输出文件中的数据没有';t打印它应有的所有结果,python,list,return,lxml,Python,List,Return,Lxml,我正在尝试将makeList[start]的索引输出到makeList[end]。我有所有正确的起始值和结束值,总共大约11对。但是,我没有得到正确的输出,因为它没有打印出所有可能的输出。为什么会这样 def searchPFAM(fname): with open(fname,'rb') as f: root = etree.parse(f) for lcn in root.xpath("/protein/match[@dbname='PFAM']/lcn")

我正在尝试将makeList[start]的索引输出到makeList[end]。我有所有正确的起始值和结束值,总共大约11对。但是,我没有得到正确的输出,因为它没有打印出所有可能的输出。为什么会这样

def searchPFAM(fname):
   with open(fname,'rb') as f:
       root = etree.parse(f)
       for lcn in root.xpath("/protein/match[@dbname='PFAM']/lcn"):
          try:
             start = int(lcn.get("start"))
             end = int(lcn.get("end"))
             yield start, end
          except (TypeError , ValueError) as e:
             pass 

uniprotID ='Q14591'

def createRef():
    fileInput = open(uniprotID +'.txt','r')
    readAA = fileInput.read()
    store_value = (readAA.partition('\n'))
    aaSequence = store_value[2].replace('\n', '')
    makeList = list(aaSequence)
    return makeList

makeList = createRef()

for start, end in searchPFAM(fname):
    print start, end  
    if start <= end:
        with open('newfile.txt','w') as fileinput:
            while start <= end:
                result = makeList[start]
                fileinput.write(result)
                start += 1
def searchPFAM(fname):
将open(fname,'rb')作为f:
root=etree.parse(f)
对于root.xpath中的lcn(“/protein/match[@dbname='PFAM']/lcn”):
尝试:
start=int(lcn.get(“start”))
end=int(lcn.get(“end”))
屈服开始,结束
除(TypeError、ValueError)外,如e:
通过
uniprotID='Q14591'
def createRef():
fileInput=open(uniprotID+'.txt',r')
readAA=fileInput.read()
store_value=(readAA.partition('\n'))
aaSequence=store_值[2]。替换('\n','')
makeList=列表(aaSequence)
返回生成列表
makeList=createRef()
对于开始,以searchPFAM(fname)结束:
打印开始、结束

如果start最常见的原因:您需要在脚本终止之前刷新输出文件

上面的片段:

with open('newfile.txt','w') as fileinput:
        while start <= end:
            result = makeList[start]
            fileinput.write(result)
            start += 1
fileinput.flush()
以open('newfile.txt','w')作为文件输入的

whilestart最常见的原因:在脚本终止之前,需要刷新输出文件

上面的片段:

with open('newfile.txt','w') as fileinput:
        while start <= end:
            result = makeList[start]
            fileinput.write(result)
            start += 1
fileinput.flush()
以open('newfile.txt','w')作为文件输入的

虽然开始只是猜测,但您可能想要:

with open('newfile.txt','w') as fileinput:
    for start, end in searchPFAM(fname):
        print start, end  
        if start <= end:
            while start <= end:
                result = makeList[start]
                fileinput.write(result)
                start += 1
以open('newfile.txt','w')作为文件输入的
:
对于开始,以searchPFAM(fname)结束:
打印开始、结束

如果开始只是猜测,但您可能想要:

with open('newfile.txt','w') as fileinput:
    for start, end in searchPFAM(fname):
        print start, end  
        if start <= end:
            while start <= end:
                result = makeList[start]
                fileinput.write(result)
                start += 1
以open('newfile.txt','w')作为文件输入的
:
对于开始,以searchPFAM(fname)结束:
打印开始、结束

如果start,则他将
一起使用,因此当该块被删除时,文件应自动关闭(并刷新)exited@Levon而且它确实
fileinput
奇怪地保留在作用域中,但实际上是一个关闭的fileobj,因此任何操作都失败。当我将flush()放在say:ValueError:i/O operation on on closed中时,我收到了错误消息file@Levon好的@ChadD它确实保留在范围内,因为with子句没有将“new”var限制在with范围内,就像python
if
for
语法没有限制一样t@PhilCooper我真的不明白你什么意思?顺便说一句,我该如何修复这个问题?他正在使用
,所以当该块被删除时,文件应该自动关闭(并刷新)exited@Levon而且它确实
fileinput
奇怪地保留在作用域中,但实际上是一个关闭的fileobj,因此任何操作都失败。当我将flush()放在say:ValueError:i/O operation on on closed中时,我收到了错误消息file@Levon好的@ChadD它确实保留在范围内,因为with子句没有将“new”var限制在with范围内,就像python
if
for
语法没有限制一样t@PhilCooper我真的不明白你什么意思?顺便说一句,我该怎么修?没问题。很乐意帮忙。有时候,这些简单的东西坐在那里盯着你的脸,它们很难被看到/跟踪。祝你好运,没问题。很乐意帮忙。有时候,这些简单的东西坐在那里盯着你的脸,它们很难被看到/跟踪。祝你好运