以文件列表作为参数的Python函数?

2024-04-26 02:25:10 发布

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

我正在构建一个需要对多个文件进行操作的函数,方法如下:

def myfuntion(filenames):
    n = len(filenames)
    if n > 0:
        data = fits.open(filenames)
        for i in range(1,n):
            final = *DO SOMETHING FOR EACH FILE*
    return final 

其思想是使用几个文件调用函数:

mean_myfuntion(['file1.fits', 'file2.fits', 'file3.fits'])

但是,问题是我收到以下错误:

OSError: File-like object does not have a 'write' method, required for mode 'ostream'.

我不知道发生了什么。我怀疑在调用文件名(data=适合打开(文件名)),如果你们有什么建议,我们将非常欢迎。你知道吗

谢谢!你知道吗


Tags: 文件方法函数infordatalenif
2条回答

尝试with open如下所示:

with open(file, 'r') as f:
    # *DO SOMETHING FOR EACH FILE*

您的代码的问题是,您将list作为fits.open()的缩写,但是str是必需的: 见Docs。 因此,您需要循环遍历列表,以逐个获取文件名“str”。你知道吗

def myfuntion(filenames):
    n = len(filenames)
    if n > 0:
        for file in filenames:
            data = fits.open(file)
            final = *DO SOMETHING FOR EACH FILE*
    return final 

相关问题 更多 >