2016-07-07 13 views
1

私は、ユーザー生成リストを作成/編集するためのプログラムを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()  
+0

なぜ再帰?? – Copperfield

答えて

2

あなたの問題は、この行にありますので、それそして、あなたのすべての機能からuser_listパラメータを削除:これに

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

変更を:

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

EDITグローバル変数であり、あなたは任意の関数内からアクセスすることができます。これはまたあなたのリストが救われない理由でもあります。

+0

実際は 'wr.write(i、 '\ n')'でなければなりません。 – EngineerCamp

+0

ありがとう@EngineerCamp、私はそれを修正しました。 – sehrob

+0

まだ動作していません。まだファイルを作成していて、リストのコンテンツを書き込んでいないだけです。 –

関連する問題