到目前为止,这是我的脚本:
#!/usr/bin/env python
import fileinput
from optparse import OptionParser
op = OptionParser()
(options, files) = op.parse_args()
print options
print files
content = []
for line in fileinput.input(files):
# print "reading from " + fileinput.filename()
if (fileinput.isfirstline()):
content.append([])
# print "is reading from the first line"
content[-1].append(line.rstrip())
如您所见,我正在读取所有文件中的所有行并构建这样的结构
[["contents", "file 1"], ["file 2; is one line"], ["file 3", "has", "3 lines in it"]]
据我所知,fileinput
这不允许我根据行分开,所以我求助于isfirstline()
每一行,看看我是否已经进入下一个文件。
是不是我不能使用列表推导优雅地完成这项工作?因为我似乎仅限于所有线路的单个循环。有什么聪明的方法可以让我把文件分开吗?