在windows中使用python拆分带有标题的CSV文件,并从行的开始和结尾删除文本限定符

2024-09-27 07:33:38 发布

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

我有一个大的csv文件,我需要分割文件。我有 已成功使用以下python代码拆分文件:

 import csv

 divisor = 500000

 outfileno = 1 outfile = None

 with open('file_temp.txt', 'r') as infile:
     for index, row in enumerate(csv.reader(infile)):
         if index % divisor == 0:
             if outfile is not None:
                 outfile.close()
             outfilename = 'big-{}.csv'.format(outfileno)
             outfile = open(outfilename, 'w')
             outfileno += 1
             writer = csv.writer(outfile)
         writer.writerow(row)

我面临的问题是文件头没有被复制 其他的文件。你能告诉我怎么修改吗 我的代码在不同的拆分文件中添加头。在


Tags: 文件csv代码importnoneindexifopen
1条回答
网友
1楼 · 发布于 2024-09-27 07:33:38

您只需要缓存标题行,然后为每个CSV文件写出它,类似于:

import csv

divisor = 500000
outfileno = 1
outfile = None

try:
    with open('file_temp.txt', 'r') as infile:
        infile_iter = csv.reader(infile)
        header = next(infile_iter)
        for index, row in enumerate(infile_iter):
            if index % divisor == 0:
                if outfile is not None:
                    outfile.close()
                outfilename = 'big-{}.csv'.format(outfileno)
                outfile = open(outfilename, 'w')
                outfileno += 1
                writer = csv.writer(outfile)
                writer.writerow(header)
            writer.writerow(row)
finally:
    # Don't forget to close the last file
    if outfile is not None:
        outfile.close()

由于您只处理行,因此不需要使用CSV模块,下面是一个不使用CSV模块的版本:

^{pr2}$

相关问题 更多 >

    热门问题