Python open函数的参数无效

Python open函数的参数无效,python,Python,以下是我尝试做的事情,我使用windows、Python 3.4和PySide: def computewrite(self): text = self.lineID.text() with open(str(readdata.filename), 'a') as myfile: myfile.write(str(text)) 上面的代码当然是模块的一部分,当我运行模块时,我得到一条错误消息,如下所示: [Errno 22] In

以下是我尝试做的事情,我使用windows、Python 3.4和PySide:

    def computewrite(self):
        text = self.lineID.text()
        with open(str(readdata.filename), 'a') as myfile:
            myfile.write(str(text))
上面的代码当然是模块的一部分,当我运行模块时,我得到一条错误消息,如下所示:

[Errno 22] Invalid argument: '<function readdata.filename at 0x0535BF18>'
我也不知道如何修复这个错误。
我将感谢您的时间和帮助。

首先,
文件名
函数需要返回一些内容。 因此,该函数的主体需要如下所示:

def filename():
    filename = "inputs2.txt"
    return filename
但是,您看到的错误消息是由于尝试将函数
readdata.filename
转换为字符串引起的。您需要首先调用函数以获取值:

open(str(readdata.filename()), 'a')
(注意
文件名
后的左括号和右括号)

如果
readdata.filename
已返回字符串,则无需调用
str()
,只需按如下方式打开文件:

open(readdata.filename(), 'a')

Paul,您传递了要打开的函数的字符串表示形式,而该字符串不是合法的文件名。PySide并没有向我们展示实际的Python异常,但是错误号通常来自OSError,并且
import errno;errno.errorcode[22]
EINVAL
,它扩展为无效参数。(Windows使用不同的错误号,因此您可能没有使用Windows,或者PySide正在翻译数字。)解决方法是传递一个字符串,该字符串至少可能是一个文件名。如果文件名太长或找不到文件,您将收到不同的错误号和消息。

您忘记了
readdata.filename()上的父项。您没有调用函数,而是将函数本身作为文件名传递给
open
@Prune-Nah,他没有将函数传递给
open
。对--
str
,而不是
open
open(readdata.filename(), 'a')