[英]Python multiple instances of program writing and then reading the same file
[英]file program reading and writing python
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.我写入新文件语句是否正确,因为它在第二行之后给出了“ ZeroDivisionError”?
3. name,grade=line.split('\\t')
工作方式与name,grade=line.split()
吗?
感谢每个人的努力。 谢谢
我对您的代码进行了一些更改并使其起作用:
1)我打开第一个文件,将其读入列表,然后将其关闭
2)另外,您将打开两个具有相同名称filename
。 这是一个错误。 我想你打算第二次open
filename2
2
回答您的问题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
希望帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.