Python 对fileinput方法使用.seek(0)
我在读取2组文件时遇到问题。我使用模块Python 对fileinput方法使用.seek(0),python,file-io,Python,File Io,我在读取2组文件时遇到问题。我使用模块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('#') #
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)
fileC=fileinput.fileinput()
#将sys.stdin作为fileC,将(filenameA,'r')作为fileA打开:
#lineC=sys.stdin.readline()
对于fileC中的lineC:
fieldC=lineC.split(“#”)
#将指针设置为fileA的开头
fileA=fileinput.fileinput(glob.glob(locationA2))
#将p初始化为0
p=0
对于文件A中的lineA:
fieldA=lineA.split(“#”)
#写入所有没有相应转换的元素
如果(fieldA[0]==fieldC[0])和(fieldA[2]==fieldC[2])以及(fieldA[1]
fileA
在第一个for
循环中定义,因为我找不到fileA.seek(0)
的替代选项,因为它不适用于FileInput
。问题在于FileInput()
处于循环中,没有及时地对其进行优化
有什么想法吗
谢谢与使用常规文件相比,fileinput有什么好处?如果文件不大,请在列表中加载文件