如何使用一个函数跳过多个文件中的行?

2024-06-08 18:57:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些帮助。我有四个不同的文件要打开,并且只读取文件,同时将每个文件的标题跳过到函数中。到目前为止,这就是我所得到的,但我甚至不知道如何继续前进:

import csv

particle_counter = file('C:/Users/Desktop/Level 2    files/HiSAM1_data_160206_134230.csv','rU')
gas_csv = file('C:/Users/Desktop/Level 2 files/gas_0.csv','rU')
gps_csv = file('C:/Users/Desktop/Level 2 files/gps_0.csv','rU')
pm2_5_csv = file('C:/Users/Desktop/Level 2 files/pm25_0.csv','rU')

reader1 = csv.reader(particle_counter)
reader2 = csv.reader(gas_csv)
reader3 = csv.reader(gps_csv)
reader4 = csv.reader(pm2_5_csv)

def skipline(n,filename):

    x =1
    while x < n in filename:
        return csv.reader.next(filename) 

整个想法是减少编码中的空间,这样我就可以只使用一个函数跳过每个文件的标题,并能够打印每个文件来测试它。任何帮助都可以!谢谢注意:如果你想编辑这个问题,请随意


Tags: 文件csv函数标题rufilesfilenamelevel
1条回答
网友
1楼 · 发布于 2024-06-08 18:57:04

您可以使用如下函数:

def skipline(readerlist):
    for reader in readerlist:
        next(reader)

这样称呼它:

skipline([reader1, reader2, reader3, reader4])

尽管事实上,我认为完全不使用函数,只调用每个读卡器上的next()就可以了,因为它声明:

reader1 = csv.reader(particle_counter)
next(reader1)

reader2 = csv.reader(gas_csv)
next(reader2)

reader3 = csv.reader(gps_csv)
next(reader3)

reader4 = csv.reader(pm2_5_csv)
next(reader4)

或者,您可以创建一个函数,将file()csv.reader()next()功能组合为一个:

def skip_header(filename):
    fp = file(filename, 'rU')
    reader = csv.reader(fp)
    next(reader)
    return reader

然后这样称呼它:

particle_reader = skip_header('C:/Users/Desktop/Level 2 files/HiSAM1_data_160206_134230.csv')
gas_reader = skip_header('C:/Users/Desktop/Level 2 files/gas_0.csv')
gps_reader = skip_header('C:/Users/Desktop/Level 2 files/gps_0.csv')
pm2_5_reader = skip_header('C:/Users/Desktop/Level 2 files/pm25_0.csv')

相关问题 更多 >