如何将信息返回到另一个文件?

时间:2017-07-14 20:23:04

标签: python

所以,我试图让事情变得简单:

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)

我是否可以将列表返回到另一个文件而不是打印它以显示该文件?我是新手,并不确定这是否可能(尽管代码可能一切正常,对吧?)。我的目标是让列表显示,并保存,以便我可以随时访问它。

3 个答案:

答案 0 :(得分: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是一个购物项目列表,您可以随意做。

另请注意,我从循环中删除了print语句。如果您需要,请随意添加它们,但我认为这是您不想要的。

现在,当你说文件时,我认为你只是想在同一个程序中的其他地方。但是如果你确实想从另一个python脚本调用这个函数,那么这就是你要做的:

A.py

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

B.py

import A

my_shopping_list = A.foo()

创建两个python脚本。第一个包含foo功能。第二个叫它。

或者,如果您想将购物清单打印到实际文件(从字面上理解您的文字),您可以这样做:

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

这会将您的项目写入文件。

答案 1 :(得分:0)

如果您要将列表运行到python脚本之外的文本文件,则可以执行以下操作:

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

outfile.close()

答案 2 :(得分: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()