列表、文件和读线

2024-09-29 20:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我被这个例子困住了。我不明白为什么当我做print(contenuto)的时候结果是[],但是如果我删除程序的所有“第一部分”,它就会工作,结果就是['prova1', 'prova2', 'prova3']。 代码如下:

def main():
    ####FIRST PART####

    lista = ['prova1', 'prova2', 'prova3']
    outfile = open('prova.txt', 'w')
    nuovo = input("inserisci: ")
    lista.append(nuovo)
    for a in lista:
        outfile.write(a + '\n')
    outfile.close

    ######SECOND PART####

    file = open('prova.txt', 'r')
    contenuto = file.readlines()
    file.close
    x = 0
    for a in contenuto:
        contenuto[x] = contenuto[x].rstrip('\n')
        x += 1
    print(contenuto)

main()

Tags: txtformainopenoutfilefileprintpart
1条回答
网友
1楼 · 发布于 2024-09-29 20:28:17

.close()不是.close。您没有调用close函数,因此文件尚未刷新到磁盘

最好使用with,这样文件会自动关闭:

def main():
    ####FIRST PART####

    lista = ['prova1', 'prova2', 'prova3']
    with open('prova.txt', 'w') as outfile:
        nuovo = input("inserisci: ")
        lista.append(nuovo)
        for a in lista:
            outfile.write(a + '\n')

    ######SECOND PART####

    with open('prova.txt', 'r') as file:
        contenuto = file.readlines()
    x = 0
    for a in contenuto:
        contenuto[x] = contenuto[x].rstrip('\n')
        x += 1
    print(contenuto)

main()

相关问题 更多 >

    热门问题