使用Python从文本文件获取输入

时间:2015-02-24 04:36:34

标签: python

大家。

我有几个.txt文件,要删除第一行。但是,要删除的行数因文件而异。

幸运的是,每个文件的第一行都以:“ #number_of_header_lines:xx ”开头,其中xx是要删除的行数。

如何使用Python从每个文件中获取xx值,因此我可以使用Python本身正确删除行?

感谢。

2 个答案:

答案 0 :(得分:1)

“就地重写文本文件”实际上是一项艰巨的任务 - 但Python的标准库模块fileinput使其变得简单。假设Python 2:

import fileinput

toskip = 0
for line in fileinput.input(filenames, inplace=True):
    if fileinput.filelineno() == 0:
        toskip = int(line.find(':')+1:])
    elif toskip: toskip -= 1
    else: print line,

在Python 3中,只需将print line,更改为print(line, end='')

答案 1 :(得分:0)

以下内容应该有效:

infile = open(filename, 'r')
lines = infile.readlines()

num_header_lines = int(lines[0][lines[0].find(':')+1:].strip())

我们扫描第一行并找到':'正在使用.find()属性,并选择读取其右侧的所有内容(' ##',这是一个字符串),启动超出':&#39的一个索引;。在剥离空格('',' \ n',' \ t')之后,我们使用int()来评估返回一个整数。

实际上,你可以在第一行阅读,我忘了这样做。

infile = open(filename, 'r')
first_line = infile.readline()

num_header_lines = int(firstline[firstline[0].find(':')+1:].strip())