在第二个函数中写入打开的文件(Python)

7 投票
1 回答
20625 浏览
提问于 2025-04-17 05:14

我现在在代码里有一个函数,如下所示:

def openFiles():
    file1 = open('file1.txt', 'w')
    file2 = open('file2.txt', 'w')

我希望在另一个方法中能够写入打开的文件。但是,每当我尝试用“file1.write("hello")”这样的方式写入文件时,系统就会报错,提示我“全局变量 'file1' 未定义”。我试着在代码开头把 'file1' 声明为一个字符串,但显然它不是字符串,而是一个对象,所以我不太确定该怎么写入。

有没有什么建议?我希望多个函数都能访问这些文件,所以我想要一个单独的函数来打开它们。

谢谢

已编辑为表示一个类

class TestClass:
    def openFiles():
        file1 = open('file1.txt', 'w')
        file2 = open('file2.txt', 'w')

    def write_to_files():
        ????????

相关问题:

1 个回答

9

你可以像下面这样使用Python的global关键字。

def openFiles():
    global file1
    global file2
    file1 = open('file1.txt', 'w')
    file2 = open('file2.txt', 'w')

def writeFiles():
    file1.write("hello")

openFiles()
writeFiles()

不过,我建议你使用类来实现这个功能。比如说。

class FileOperations:
    def open_files(self):
        self.file1 = open('file1.txt', 'w')
        self.file2 = open('file2.txt', 'w')

    def write_to_files(self):
        self.file1.write("hello")

然后你可以这样做:

>>> fileHandler = FileOperations()
>>> fileHandler.open_files()
>>> fileHandler.write_files()

撰写回答