我正在编写的Python程序是从文件顶部读取一定数量的行,程序需要保留此标题以备将来使用.目前,我正在做类似以下的事情:
header = ''
header_len = 4
for i in range(1, header_len):
header += file_handle.readline()
Run Code Online (Sandbox Code Playgroud)
Pylint抱怨说我没有使用变量i.什么是更pythonic方式来做到这一点?
编辑:程序的目的是智能地将原始文件拆分为较小的文件,每个文件包含原始标题和数据的子集.因此,在读取文件的其余部分之前,我需要读取并保留标题.
Sil*_*ost 13
f = open('fname')
header = [next(f) for _ in range(header_len)]
Run Code Online (Sandbox Code Playgroud)
由于您要将标题写回新文件,因此您无需对其执行任何操作.要将其写回新文件:
open('new', 'w').writelines(header + list_of_lines)
Run Code Online (Sandbox Code Playgroud)
如果您知道旧文件中的行数,list_of_lines将变为:
list_of_lines = [next(f) for _ in range(chunk_len)]
Run Code Online (Sandbox Code Playgroud)
Dav*_*dge 11
我不确定Pylint规则是什么,但你可以使用'_'一次性变量名.
header = ''
header_len = 4
for _ in range(1, header_len):
header += file_handle.readline()
Run Code Online (Sandbox Code Playgroud)
小智 10
import itertools
header_lines = list(itertools.islice(file_handle, header_len))
# or
header = "".join(itertools.islice(file_handle, header_len))
Run Code Online (Sandbox Code Playgroud)
请注意,对于第一个,换行符仍将存在,以剥离它们:
header_lines = list(n.rstrip("\n")
for n in itertools.islice(file_handle, header_len))
Run Code Online (Sandbox Code Playgroud)