我试图使用glob打开一些文件并通过一系列函数提供它们。我的一些文件是gziped,有些是bz2,有些是纯文本。我通常使用fileinput,但无法弄清楚它是否包含压缩文件的语法。根据这个Python Fileinput Doc,它应该是这样的:
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
我在=符号的文件输入行上得到了无效的语法。
有什么建议吗?
答案 0 :(得分:2)
你想要
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文档中得到了这个想法,它使用[
和]
来表示函数的可选参数。
这只是暂时的 - 通常在追溯中有更多信息可以帮助确定问题,而不仅仅是错误类型和行号。 (阅读:当你有追溯时,如果你粘贴整个东西,我们通常会很感激,所以我们可以看到它)