如何从python中的def函数中获取数据

2024-06-26 19:55:30 发布

您现在位置:Python中文网/ 问答频道 /正文

试图用我的脚本来简化大量重复的读写,但我不知道如何从def函数中获取数据。在

def writefile(FILE, DATA):
    file = open(FILE, "w")
    X = str(DATA) 
    file.write(X)
    file.close()
def readfile(FILE):
    file = open(FILE, "r")
    readvar = file.read()
    file.close()
readfile("BAL.txt")
print(readvar)

我希望存储在余额.txt但它总是说readvar没有定义。我只是在我运行的函数中定义了它。我非常困惑


Tags: 函数txt脚本closedata定义defopen
3条回答

在Python中,函数内部的变量通常不能从外部访问(查找变量作用域)。您可以在函数的末尾放一个return语句来返回变量(在本例中是readvar)(您几乎总是应该这样做)。然后可以将返回的参数(readvar)分配给一个新变量(例如rv)。你也可以给它取相同的名字。在

def writefile(FILE, DATA):
    file = open(FILE, "w")
    X = str(DATA) 
    file.write(X)
    file.close()
def readfile(FILE):
    file = open(FILE, "r")
    readvar = file.read()
    file.close()
    return readvar
rv = readfile("BAL.txt")
print(rv)

简单。试试这个

def personal_data():

name1 = input("What is you 1st Name?").upper()
name2 = input("What is your last Name?").upper()
return name1 + name2

fname=个人数据()

打印(fname)

您无法看到readvar的值,因为它只是在readfile函数的作用域内本地定义的,而不是全局定义的,因为您试图在调用print(readvar)时使用它。在

如果您需要一个值在函数的作用域之外保持不变,则必须return将其保存到调用函数的位置,如下所示:

def readfile(FILE):
    file = open(FILE, "r")
    file_data = file.read()
    file.close()
    return file_data

file_data = readfile("my_file.txt")
print(file_data)

我还建议在执行文件操作时使用with块。最佳做法是确保文件句柄正确关闭,即使发生异常。这样可以改进对操作可能遇到的任何错误的处理。例如:

^{pr2}$

如果您想逐行访问文件,我们只需在with范围内包含一个for循环。例如,打印文件的每一行:

def readfile(FILE):
    with open(FILE, 'r') as read_stream:
        for line in read_stream
            print(line)

相关问题 更多 >