首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件程序读写python

文件程序读写python
EN

Stack Overflow用户
提问于 2014-03-20 11:26:57
回答 1查看 114关注 0票数 0
代码语言:javascript
复制
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)

在这里,我试图写入一个新的文件。

代码语言:javascript
复制
            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()一样工作?

感谢每个人的努力。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-20 12:29:26

我对您的代码做了一些修改,并使其工作起来:

1)打开第一个文件,将其读入列表,然后关闭它。

2)另外,您正在打开两个同名为filename的文件。这是个错误。我想你是想为第二个openopen

回答你的问题3):是的,string.split()string.split('\t')是一样的

以下是工作计划:

代码语言:javascript
复制
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

希望这有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22531539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档