Python文件,将值添加到/从列表中添加



我正在尝试将一个值添加到文件中的列表中,然后能够将值从文件中添加到列表中。这就是我所拥有的:

L = []        
def readFile(L):
    ui = input("Please enter your file name:")
    r = open(ui, 'r')
    files = r.readlines()
    for line in files:
        return float(line)
    L.append(line)
    r.close()
def fileAddValue(L):
    ui = input("Please enter your file name:")
    val = float(input("Enter the value you would like to add to the list: "))
    r = open(ui, 'a')
    file = r.write(str(val) + 'n')
    for ix in r:
        x = float(ix)
    L.append(x)
    L.sort()
    r.close()

您有一些问题...

首先,当您打开文件时,您需要使用with,这将处理为您关闭文件。

现在,当您依次阅读每行时,您将返回第一行。从整个功能中返回,因此不是您想要的。我认为您想将每个项目附加到您的列表中。

另外,您的功能更好。通过文件名和数据传递。使它们超出功能以提高灵活性。

尚不清楚您想在这里做什么。我假设您要指定值添加到文件中持续存在的列表的值。有更好的方法可以做到这一点。这是我基于您的原始代码的尝试。

def readFile(ui):
    L = []
    with open(ui, 'r') as f:
        for line in f.readlines():
            L.append(float(line))
    return sorted(L)
def fileAddValue(ui, val):
    with open(ui, 'a') as f:
        f.write(str(val) + 'n')
ui = raw_input("Please enter your file name:")
L = readFile(ui)
print('original file:')
print(L)
val = float(raw_input("Enter the value you would like to add to the list: "))
fileAddValue(ui, val)
L = readFile(ui)
print('updated file:')
print(L)

您需要这样的东西吗?

L = []
def readFile():
    ui = input("Please enter your file name:")
    r = open(ui, 'r')
    files = r.readlines()
    for line in files:
        value = float(line)
        L.append(value)
    r.close()
def fileAddValue():
    ui = input("Please enter your file name:")
    val = float(input("Enter the value you would like to add to the list: "))
    r = open(ui, 'a+')
    r.write(str(val) + 'n')
    for ix in r:
        x = float(ix)
        L.append(x)
    L.append(val)
    L.sort()
    r.close()
if __name__ == '__main__':
    readFile()
    fileAddValue()
    print(L)

虽然它是非纯化的(除非有必要,否则请不要触摸您的代码,但如果我正确地解决了您的问题,它可以正常工作。缩进代码在Python中很重要,并且从函数中返回可以保证返回后的代码永远不会运行。如果您想要一个"返回"几个值的函数,因此可以使用for迭代该"功能",请使用yield代替return

相关内容

  • 没有找到相关文章

最新更新