【发布时间】:2015-08-30 08:29:27
【问题描述】:
我正在尝试从多个输入文件中读取数据并将每个文件的第二行作为表格彼此相邻打印
import sys
import fileinput
with fileinput.input(files=('cutflow_TTJets_1l.txt ', 'cutflow_TTJets_1l.txt ')) as f:
for line in f:
proc(line)
def proc(line):
parts = line.split("&") # split line into parts
if "&" in line: # if at least 2 parts/columns
print parts[1] # print column 2
但我得到一个“AttributeError:FileInput 实例没有属性'__exit__'”
【问题讨论】:
-
据我所知,Python 会在文件输入完成后立即关闭文件——至少文档没有提到需要关闭它们。因此,使用带有文件输入的上下文管理器没有意义,实现
__enter__或__exit__也没有意义 -
对不起,我不明白这对我有什么帮助
-
解决办法是不使用上下文管理器。
-
你的 Python 版本是多少?是 Python 2.7 吗?您可以在 Python 2 上使用
with contextlib.closing(fileinput.FileInpt(..)) as file:。
标签: python