文件程序读写python

时间:2014-03-20 11:26:57

标签: python file

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 个答案:

答案 0 :(得分:0)

我对您的代码进行了一些更改并使其正常工作:

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

希望能帮助