endofprogram=False
try:
filename=input('Enter file name: ')
filename2=input('Enter file to write: ')
infile=open(filename,'r')
outfile=open(filename,'w')
#IOError if file is not found
except IOError:
print('End reading file--end of program')
endofprogram=True
if(endofprogram==False):
total=0
alist=[]
for line in infile:
line=line.strip('n')
if(len(line)!=0)and line[0]!='#':
name,grade=line.split('t')
total=total+float(grade)
record=(name,float(grade))
alist.append(record)
在这里,我正在尝试写入一个新文件。
outfile.write(name+'n'+str(grade))
average=total/len(alist)
for item in alist:
if item[1]<average:
print(item)
infile.close()
嘿,伙计们。我试图理解python中的文件程序,只是有几个问题。
我写到新文件语句中的 2.Is 正确,因为它在第二行后给了我"零除法错误"?
3. name,grade=line.split('t')
和name,grade=line.split()
一样工作?
感谢大家的努力。谢谢
我对你的代码做了一些更改并让它工作:
1(我打开第一个文件,将其读入列表,然后关闭它
2(此外,您正在打开两个同名的文件filename
。这是一个错误。我想你的意思是第二filename2
做open
回答你的问题3(:是的string.split()
和string.split('t')
是一回事
这是工作计划:
endofprogram=False
try:
filename=str(input('Enter file name: '))
filename2=str(input('Enter file to write: '))
infile_temp=open(filename,'r')
infile=infilea.readlines()
infile_temp.close()
outfile=open(filename2,'w')
#IOError if file is not found
except IOError:
print('End reading file--end of program')
endofprogram=True
if(endofprogram==False):
total=0
alist=[]
for line in infile:
line=line.strip('n')
if(len(line)!=0)and line[0]!='#':
name,grade=line.split()
total=total+float(grade)
record=(name,float(grade))
alist.append(record)
outfile.write(name+" "+str(grade)+'n')
average=total/len(alist)
for item in alist:
if item[1]<average:
print item
希望有帮助