对fileinput方法使用.seek(0)

2024-09-24 04:19:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在阅读两套文件时遇到问题。我使用模块fileinput,因为我需要在生产中一次读取两组文件。 当我试图重置第二个循环中第二个文件的句柄时出现问题:

fileC = fileinput.FileInput()
#with  sys.stdin as fileC, open(filenameA,'r') as fileA:


#lineC = sys.stdin.readline()

for lineC in fileC:
     fieldC = lineC.split('#')
     #set the pointer to the begining of fileA
     fileA = fileinput.FileInput(glob.glob(locationA2))
     #Initialize p to 0
     p = 0
     for lineA in fileA:
         fieldA = lineA.split('#')
         #Write all the element that have no corresponding conversion
         if (fieldA[0] == fieldC[0]) and (fieldA[2] == fieldC[2]) and (fieldA[1] < fieldC[1]):
             p = 1
     if p == 0:
        #outputfile.write(lineC)
         sys.stdout.write(lineC)

fileA是在第1个for循环中定义的,因为我找不到fileA.seek(0)的替代词,因为它不能与FileInput一起工作。问题是FileInput()在循环中,它并没有真正及时地优化。在

有什么想法吗?在

谢谢


Tags: 文件theinforasstdinsyssplit