2017-07-14 8 views
-1

だから、私はシンプルなものを作るしようとしている:情報を別のファイルに返すにはどうすればよいですか?

shopping_list = [] 
print("Enter 'done' to stop adding items.") 

while True: 
    new_item = input("> ") 

    if new_item.lower() == "done": 
     break 
    shopping_list.append(new_item) 
    print("Here's your list:") 

    for item in shopping_list: 
     print(item) 

私は、代わりにこれを印刷すると、そのファイルを表示するために別のファイルにリストを返すことはできますか?私はこれが初めてで、可能かどうか確信が持てません(ただしコードですべてが可能ですが)。私の目標は、リストを表示して保存して、いつでもアクセスできるようにすることです。

+0

書き込みA:あなたがこの方法を試すことができます

outfile = open(file, "w") CODE outfile.write(shoppping_list) outfile.close() 
user2357112

+0

リストをテキストファイルに書きたいのですか?もしそうなら、[this](http://www.pythonforbeginners.com/files/reading-and-writing-files-in-python)のウェブサイトを見てください。そうでなければ、あなたの質問を明確にしてください。 –

+0

ありがとう、@ Professor_Joykill、それは有益だった。 – Cybertether

答えて

1

まず、関数内にコードを配置する必要があります。そうでなければ、何かを "返す"ことはできません。

def foo(): 
    .... 
    return shopping_list 

だから、あなたのコードは次のようなものになるだろう:

def foo(): 
    while True: 
     new_item = input("> ") 

     if new_item.lower() == "done": 
      break 
     shopping_list.append(new_item) 

    return shopping_list 

そして、あなたはこのようなあなたの関数を呼び出すと思います:

my_shopping_list = foo() 

関数が戻ったら、my_shopping_listがリストでありますあなたが好きなように自由に行うことができます。

また、ループから印刷ステートメントを削除しました。必要があれば自由に追加してください。でも、それはあなたが望んでいないものだと思います。


今、あなたがファイルを言うとき、私はあなたが同じプログラムの中のどこかにあることを意味していると仮定しました。しかし、あなたが実際に別のPythonスクリプトからこの関数を呼び出したいならば、ここにあなたがやるものだ:

A.py

def foo(): 
    ... # entire function definition here 

B.py

2つのPythonスクリプトを作成します。最初のものにはfooの機能があります。 2番目の人がそれを呼び出します。


あなたが(文字通りここにあなたの言葉を取る)実際のファイルのお買い物リストを印刷したい場合はまた、あなたがしたい:

foo(): 
    ... 
    with open('cart.txt', 'w') as f: 
     for i in shopping_list: 
      f.write(i + '\n') 

これは、ファイルにアイテムを書き込み。あなたは、あなたが次の操作を行うことができ、あなたのPythonスクリプトの外でテキストファイルにリストを実行することを意味している場合

0

def func(): 
    shopping_list = [] 
    print("Enter 'done' to stop adding items.") 

    while True: 
     new_item = input("> ") 

     if new_item.lower() == "done": 
      break 
     shopping_list.append(new_item) 

    return shopping_list 
if __name__ == '__main__': 
    print("Here's your list:") 

    outfile = open('test.txt', "w") 
    shopping_list = func() 

    # outfile.write(shopping_list) 

    for item in shopping_list: 
     # print(item) 
     outfile.write(item + "\n") 

    outfile.close() 
0

関数。関数がリストを `返す 'ようにする。他のファイルのコードに関数を呼び出します。
関連する問題