Python Fileinput openhook=Fileinput.hook\u压缩语法使用

Python Fileinput openhook=Fileinput.hook\u压缩语法使用,python,gzip,glob,file-io,Python,Gzip,Glob,File Io,我正在尝试使用glob打开一些文件,并通过一系列函数为它们提供信息。我的一些文件是gzip文件,一些是bz2文件,一些是纯文本文件。我通常使用fileinput,但无法理解它在压缩文件中的语法。基于此,它应该类似于: openhook=fileinput.hook_compressed 我的代码如下所示: import fileinput import glob filestobeanalyzed = glob.glob('./files/*') for fileName in files

我正在尝试使用glob打开一些文件,并通过一系列函数为它们提供信息。我的一些文件是gzip文件,一些是bz2文件,一些是纯文本文件。我通常使用fileinput,但无法理解它在压缩文件中的语法。基于此,它应该类似于:

openhook=fileinput.hook_compressed
我的代码如下所示:

import fileinput
import glob

filestobeanalyzed = glob.glob('./files/*')

for fileName in filestobeanalyzed:
    inputfilename = fileName
    for line in fileinput.input([inputfilename, openhook=fileinput.hook_compressed]):
        #do stuff
我在=符号处的fileinput行中得到一个无效语法

有什么建议吗?

你想要什么

for line in fileinput.input(inputfilename, openhook=fileinput.hook_compressed):
    #do stuff
(我去掉了方括号)。您试图在列表构造函数中执行赋值。e、 g

my_list=["foo",bar="baz"]  #this doesn't work (SyntaxError)
您可能是从python文档中得到这个想法的,该文档使用
[
]
来指示函数的可选参数


这只是一个旁白——回溯中通常有更多的信息可以帮助确定问题,而不仅仅是错误类型和行号。(阅读:当你有一个回溯时,如果你粘贴整个东西以便我们能看到它,通常会很感激)

实际上这就是整个回溯,只是“syntax error on=”和一个指向位置的箭头。谢谢,是的,我从python文档中得到了这个想法。您的解决方案非常有效,再次感谢。