如何在Python中去掉CSV文件的前四行?
我有一批50到60个csv文件,出于某种原因,每个文件的前四行都是一些无用的数据。不过在这些无用数据之后,列标题是正确的,文件的其他部分也没问题。我想知道怎么用Python把每个文件的前四行去掉。以下是我目前的代码:
import csv
total = open('C:\\Csv\\201.csv', 'rb')
for row in csv.reader(total):
print row
如你所见,我现在只做了打开文件并打印内容的操作。我查找了一些关于删除csv文件中特定部分的解决方案,但大多数要么是删除整个列,要么是基于某个条件来删除行。而在我的情况下,只是简单的顺序问题,每个文件都需要去掉前四行。任何帮助都非常感谢。
7 个回答
1
你可以写一个通用的函数,用来跳过任何序列中的前n个项目:
def skip_first(seq, n):
for i,item in enumerate(seq):
if i >= n:
yield item
使用方法如下:
import csv
with open('C:\\Csv\\201.csv', 'rb') as total:
csvreader = csv.reader(total)
for row in skip_first(csvreader, 4):
print row
这个函数是通用的,因为它可以跳过任何序列,而不仅仅是文件:
# Skip the first three
list = ['happy', 'grumpy', 'doc', 'sleepy', 'bashful', 'sneezy', 'dopey']
for item in skip_first(list, 3):
print item
8
你可以这样做:
reader = csv.reader(total)
all(next(reader) for i in range(4))
或者
for i in range(4): next(reader)
3
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是因为我们使用的工具和环境设置不对。
当你在网上寻找解决方案时,StackOverflow是一个非常有用的地方。在这里,很多程序员会分享他们遇到的问题和解决办法。你可以在这里提问,或者搜索别人已经问过的问题,看看有没有适合你的答案。
总的来说,StackOverflow就像一个编程问答社区,大家互相帮助,分享经验,让编程变得更简单。
for i, line in enumerate(sys.stdin, -4):
if i>=0: print line,