使用pythonfileinput模块时是否有一种优雅的方式来跳过第一行文件?
我有数据文件,格式很好,但第一行是标题.fileinput如果该行似乎不包含数据,则必须使用check和discard line.
问题是它会对文件的其余部分应用相同的检查.有了read()你可以打开文件,读取然后第一线去遍历文件的其余部分.有类似的伎俩fileinput吗?
是否有一种优雅的方式来跳过第一行的处理?
示例代码:
import fileinput
# how to skip first line elegantly?
for line in fileinput.input(["file.dat"]):
data = proces_line(line);
output(data)
Run Code Online (Sandbox Code Playgroud)
nos*_*klo 17
lines = iter(fileinput.input(["file.dat"]))
next(lines) # extract and discard first line
for line in lines:
data = proces_line(line)
output(data)
Run Code Online (Sandbox Code Playgroud)
或者如果您愿意,可以使用itertools.islice方式
import itertools
finput = fileinput.input(["file.dat"])
lines = itertools.islice(finput, 1, None) # cuts off first line
dataset = (process_line(line) for line in lines)
results = [output(data) for data in dataset]
Run Code Online (Sandbox Code Playgroud)
由于使用的所有内容都是生成器和迭代器,因此不会构建任何中间列表.
Phi*_*hil 15
该fileinput模块包含一系列方便的功能,其中一个似乎完全符合您的要求:
for line in fileinput.input(["file.dat"]):
if not fileinput.isfirstline():
data = proces_line(line);
output(data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14672 次 |
| 最近记录: |