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

the*_*men 6 python function

我目前在我的代码中有以下功能: -

def openFiles():
    file1 = open('file1.txt', 'w')
    file2 = open('file2.txt', 'w')
Run Code Online (Sandbox Code Playgroud)

我现在希望做的是,第二种方法是写入打开的文件.但是,每当我尝试使用例如"file1.write("hello")"写入文件时,都会返回错误通知我"global variable 'file1' is not defined".我已经尝试在代码的开头将'file1'声明为字符串,但显然,因为它不是字符串而是对象,所以我不确定如何写入它.

有什么建议?我想要一些函数来访问文件,因此我想要一个单独的函数来打开它们.

谢谢

编辑代表一个班级

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

    def write_to_files():
        ????????
Run Code Online (Sandbox Code Playgroud)

sol*_*tic 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()
Run Code Online (Sandbox Code Playgroud)

但是我会建议你使用一个类来代替.例如.

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")
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

>>> fileHandler = FileOperations()
>>> fileHandler.open_files()
>>> fileHandler.write_files()
Run Code Online (Sandbox Code Playgroud)

  • @thefragileomen声明`x = FileOperations()`,然后执行`x.open_files()`和`x.write_to_files()`. (2认同)