使用fileinput方法时如何跳过从文件读取第一行

时间:2016-01-27 15:03:54

标签: python python-3.x

我这样做是为了阅读文件:

import fileinput
for line in fileinput.input('/home/manish/java.txt'):
  if not fileinput.isfirstline():
...             data = proces_line(line);
...             output(data)

由于未定义proces_line,因此抛出错误。

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
NameError: name 'proces_line' is not defined

我必须逐行读取数据并存储在列表中,每行都是列表的单独元素。

3 个答案:

答案 0 :(得分:2)

您可以跳过第一行,如下所示:

import fileinput

def output(line):
    print(line)


fi = fileinput.input('/home/manish/java.txt')
next(fi)    # skip first line

for line in fi:
    output(line)

这样可以避免每次在for循环中测试第一行。

要将每行存储到列表中,您可以执行以下操作:

import fileinput

fi = fileinput.input('/home/manish/java.txt')
next(fi)    # skip first line
output = list(fi)
fi.close()

print(output)

答案 1 :(得分:1)

你可以试试这个:

fname = '/home/manish/java.txt'
with open(fname) as f:
    content = f.readlines()

content的类型为list。您可以忽略content[0]并使用其余部分循环以获取所需数据。

答案 2 :(得分:0)

您正在寻找&#34; readline()&#34;机能的研究。从文件中拉出下一行并截断换行符Python documentation for File Input

用法

For each in openFile:
    List += openFile.readline ()

此外,您正在尝试使用不存在的功能。以及被拼写错过。