大家。
我有几个.txt文件,要删除第一行。但是,要删除的行数因文件而异。
幸运的是,每个文件的第一行都以:“ #number_of_header_lines:xx ”开头,其中xx是要删除的行数。
如何使用Python从每个文件中获取xx值,因此我可以使用Python本身正确删除行?
感谢。
答案 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())