【问题标题】:Saving inputs into a list?将输入保存到列表中?
【发布时间】:2020-07-17 04:58:12
【问题描述】:

我想制作一个程序(或任何正确的术语),让您输入一个存储在列表中的小问候语。

我不知道如何让程序将该列表保存在单独的文件中或程序中,以便当我打开它并再次运行它时,我可以访问同一个列表。

这是用户输入问候语的函数:

def greetings():
     print('Would you like to submit a new greeting?')
     yesno()  # Ignore this
     greeting = input()
     storage = []
     if len(greeting) < 3:
          print("That's too short.")
     elif len(greeting) > 15:
          print("That's too long.")
     elif greeting == 'debug':
          print(storage)
     else:
          storage.append(greeting)

我把那个函数放在:

while True:
     user = input()
     user_length = len(user)
     if int(user_length) < 2 or int(user_length) > 15 and tries < 3:
          tries = tries + 1
          print("Please enter a valid name.")
     else:
          greetings()

【问题讨论】:

标签: python python-3.x


【解决方案1】:

回答您的问题

要永久存储输入,您需要将其存储在数据库或文件中,在这种情况下,我将其存储在 .txt 文件中


while True:
  text = input("Please Enter Some Random Text Here:\n")
  # Make Sure That The File `inputs.txt` exists!
  with open('inputs.txt', encoding='utf-8', mode='a') as file: # Mode'a' = append
    file.write('\n'+text)
    file.close()  # To save some memory
    

更新

这只是您问题的“骨架”'我不知道如何让程序将该列表保存在单独的文件或程序中,以便当我打开它并再次运行它,我可以访问同一个列表。'

【讨论】:

  • 这看起来像我要找的。我现在需要弄清楚如何从文本文件中选择随机问候语,谢谢!
  • 要从列表中选择随机问候语,您可以使用 random.choice(LISTNAME)。查看stackoverflow.com/a/62947730/6607841了解更多详情
【解决方案2】:
import traceback, ast, random
def greetings():
    print('Would you like to submit a new greeting? ')
    # yesno()  # Ignore this
    greeting = input()
    if len(greeting) < 3:
        print("That's too short.")
    elif len(greeting) > 15:
        print("That's too long.")
    elif greeting == 'debug':
        print(storage)
    else:
        storage = []
        try:
            previous = open('data.txt', 'r')
            read = previous.read()
            storage = ast.literal_eval(read) 
            previous.close()
        except:
            print(traceback.format_exc())
            storage = []
            print("File not found")
        storage.append(greeting)
        write = open('data.txt', 'w')
        write.write(str(storage))
        write.close()
        print("Random greeting - {}".format(random.choice(storage)))
        

while True:
    user = input('Enter your name : ')
    user_length = len(user)
    if int(user_length) < 2 or int(user_length) > 15 and tries < 3:
        tries = tries + 1
        print("Please enter a valid name.")
    else:
        greetings()

每次有新条目时都会读取文件,并将新问候添加到列表末尾并写入文件。写入文件后,它会从列表中打印一个随机问候语

【讨论】:

    猜你喜欢
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多