我想在阅读文本文件时跳过前17行.
假设文件看起来像:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
good stuff
Run Code Online (Sandbox Code Playgroud)
我只想要好东西.我正在做的事情要复杂得多,但这是我遇到麻烦的部分.
我有一个文本文件结构:
date
downland
user
date data1 date2
201102 foo bar 200 50
201101 foo bar 300 35
Run Code Online (Sandbox Code Playgroud)
因此不需要前六行文件.文件名:dnw.txt
f = open('dwn.txt', 'rb')
Run Code Online (Sandbox Code Playgroud)
如何从第7行开始将此文件"拆分"为EOF?
是否存在n
从迭代器中删除值的pythonic解决方案?您可以通过丢弃n
值来执行此操作,如下所示:
def _drop(it, n):
for _ in xrange(n):
it.next()
Run Code Online (Sandbox Code Playgroud)
但是,IMO并不像Python代码那样优雅.我在这里错过了更好的方法吗?
我在大型(7000行)csv文件上尝试了此建议的解决方案): 从第2行读取文件或跳过标题行`
以下代码有效,但前提是我必须手动删除标头:
RatedTracksFile = open('pyall_rated.csv')
RatedTracksReader = csv.reader(RatedTracksFile)
data_list = list(csv.reader(RatedTracksFile))
eligible1 = open('py_all1.csv', 'a') # open py_all1.csv in append mode
for i in range(len(data_list)):
trackrating = int(data_list[i][12])
...
Run Code Online (Sandbox Code Playgroud)
我尝试了添加此建议代码的不同方法:
with open(fname) as f:
next(f)
for line in f:
Run Code Online (Sandbox Code Playgroud)
我是python的新手,无法弄清楚如何添加它。我一直遇到相同的值类型错误,因为它仍然读取第1行,col 12(这是标题的字符串),而不是第2行的整数。第12栏:
ValueError: invalid literal for int() with base 10: 'GroupDesc'
Run Code Online (Sandbox Code Playgroud)
已解决:基于下面的Sphinx的评论(谢谢!)。