python,将列表内容写入文本fi

2024-06-14 00:26:40 发布

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

我用python创建了一个程序,用于创建/编辑用户生成的列表。我试图创建一个将列表保存到文本文件的保存函数,但遇到了问题。它将创建文本文件,但不会将列表的内容写入文本文件。

#!/usr/bin/python
user_list = []
def banner():
    logo = open('chlogo2', 'r')
    for line in logo:
        print line.strip('\n')
    logo.close
    main(user_list)
def save(user_list):
    print "\nENTER A SAVE NAME.\nTHIS WILL BE SAVED AS A .TXT FILE.\n"
    w = ("saves/" + raw_input("CNG>SAVE NAME> ") +".txt")
    wr = open(w, 'w')
    for i in user_list:
        i.write(user_list, '\n')
    main(user_list)
def prt(user_list):
    print '\nCURRENT LIST -\n'
    r = user_list
    for line in r:
        print line.strip('\n')
    main(user_list)
def add(user_list):
    print "\nTYPE AN ENTRY IN A 'POSITION' then 'ENTRY' FORMAT\nPRESS 'ENTER' WITHOUT AN INPUT TO RETURN TO THE MAIN FUNTION\n"
    try:
        x = int(raw_input("CNG>ADD>P> "))
        y = raw_input("CNG>ADD>E> ")
        x -= 1
        user_list.insert(x, y)
        add(user_list)
    except:
        main(user_list)
def main(user_list):    
    option = open('options')
    for line in option:
        print line.strip('\n')
    option.close
    opt = raw_input("CHG> ")


    if opt == "list":
        prt(user_list)
    elif opt == 'banner':
        banner()
    elif opt == 'exit':
        print ' '
    elif opt == 'empty':
        user_list = []
    elif opt == 'add':
        add(user_list)
    elif opt == 'save':
        save(user_list)     

if __name__ == "__main__":
    banner()    

Tags: inadd列表forinputrawmaindef
1条回答
网友
1楼 · 发布于 2024-06-14 00:26:40

你的问题在于:

for i in user_list: i.write(user_list, '\n')

更改为:

for i in user_list:
    wr.write(i, '\n')

编辑:并从所有函数中删除user_list参数,因为它是全局变量,您可以从任何函数中访问它。这也可能是你的列表没有被保存的原因。

相关问题 更多 >