Python 使用用户输入在外部文件中写入、更新和读取列表

Python 使用用户输入在外部文件中写入、更新和读取列表,python,python-3.x,Python,Python 3.x,我查看了使用csv、txt、py文件的各种解决方案,但未能完全实现我想要的,即: 我想在一个单独的文件中保存一个整数列表 通过用户对该单独文件的输入将新条目附加到列表中 并将更新后的版本作为列表以int形式读回,以便从该文件进行计算 我一直在尝试以下代码 print('Enter the result of your last reading=') newReading = input() reading = [int(newReading)] with open('avg.py', 'a'

我查看了使用csv、txt、py文件的各种解决方案,但未能完全实现我想要的,即:

  • 我想在一个单独的文件中保存一个整数列表
  • 通过用户对该单独文件的输入将新条目附加到列表中
  • 并将更新后的版本作为列表以int形式读回,以便从该文件进行计算
我一直在尝试以下代码

print('Enter the result of your last reading=')
newReading = input()
reading = [int(newReading)]
with open('avg.py', 'a') as f:
    f.write('reading = ' . reading)

from avg.py import reading as my_list
print(my_list)

解决方案

filename = "avg.txt"

while True:

    new_reading = input("\nEnter the result of your last reading: ")

    with open(filename, 'a') as f_obj:
        f_obj.write(new_reading)

    with open(filename) as f_obj:
        contents = f_obj.read()

    reading = list(contents)
    print(reading)
输出

评论

这个方法包括使用第二段代码打开文件,然后我读取数据并将其存储到
目录中。之后,可以使用
list(contents)
将内容转换为列表

您可以从这里处理列表
阅读
,而不仅仅是打印它。我也会考虑把它变成一个
if
else
循环,并创建一些条件,比如
q退出
等来结束程序

大概是这样的:

filename = "avg.txt"

while True:

    new_reading = input("\nEnter the result of your last reading" \
        "('q' to quit): ")

    if new_reading == "q":
        break

    else:
        with open(filename, 'a') as f_obj:
            f_obj.write(new_reading)

        with open(filename) as f_obj:
            contents = f_obj.read()

        reading = list(contents)

        print(reading)

欢迎来到SO。请看和。这个问题应该包含样本输入数据和基于该样本的期望输出。此外,你还可以展示你尝试了什么,以及你遇到了什么问题。所以这不是一个免费的代码编写服务。非常感谢,这是我可以建立的东西@欢迎光临。此外,我还推荐Python速成班,它将非常清楚地涵盖这一点,以及许多其他主题。
filename = "avg.txt"

while True:

    new_reading = input("\nEnter the result of your last reading" \
        "('q' to quit): ")

    if new_reading == "q":
        break

    else:
        with open(filename, 'a') as f_obj:
            f_obj.write(new_reading)

        with open(filename) as f_obj:
            contents = f_obj.read()

        reading = list(contents)

        print(reading)