【问题标题】:Adding text to existing txt file using repeated user input使用重复的用户输入将文本添加到现有 txt 文件
【发布时间】:2021-12-11 05:56:06
【问题描述】:

我想让用户将号码添加到现有的电话列表中。当用户只用回车回答时,程序应该停止询问输入。这是我到目前为止所得到的(我不知道为什么它不能按预期工作):

nums = open('telephone.txt', 'a')
print('Add name and number, finish with <enter>.')

while True:
    new = input('Name and number: ')
    nums.write('\n' + new)
    if new == '':
        break
nums.close() 

nums = open('telephone.txt', 'r')
print(nums.read())

编辑:根据结果提出建议的更改

【问题讨论】:

  • 您有什么具体问题需要我们帮助解决?
  • 您将new 用于文件变量以及用户输入变量。使用不同的名称。
  • while True 后的缩进不正确。该行需要缩进。
  • 如果您跳过输入内容,这将在您的文件中写入一个空行 - 我建议重新检查检查和写入操作并删除重复的变量名称
  • 请不要像以前那样编辑您的问题。它使给定的答案无效。

标签: python loops file input while-loop


【解决方案1】:

尽管在while 循环中重新定义new 会导致对文件的引用被覆盖,但您拥有所需的一切。

new = open('telephone.txt', 'a')

print('Add name and number, finish with <enter>.')
while True:
    userInput = input('Name and number: ')
    if userInput == '': break # If no input provided, stop listening for new numbers.
    
    new.write('\n' + userInput)

print(new.read())
new.close()

【讨论】:

    【解决方案2】:

    python 在第一行将变量 new 设为文件指针,然后在第 5 行将其设为字符串,更改用户输入的变量名

    前:

    new = open('telephone.txt', 'a')
    print('Add name and number, finish with <enter>.')
    
    while True:
        usr_input = input('Name and number: ')
        new.write('\n' + usr_input)
        if usr_input == '':
            break
    new.close()
    

    【讨论】:

      猜你喜欢
      • 2018-06-15
      • 2022-12-11
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2019-01-10
      • 2018-05-05
      • 2021-03-14
      相关资源
      最近更新 更多