加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

分割csv文件

发布时间:2020-12-17 17:04:25 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # coding:utf-8# python 2.7import csvimport mathimport sysimport osfrom sys import exit#平均分割CVS文件 def deal_csv(head,data,n,filepath): n

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# coding:utf-8
# python 2.7
import csv
import math
import sys
import os
from sys import exit

#平均分割CVS文件   
def deal_csv(head,data,n,filepath):
    name = filepath.split('.')[0]
    line_number = 1000000
    if int(math.ceil(len(data)/float(n)))<=line_number:
        line_number = int(math.ceil(len(data)/float(n)))
    else:
        n = int(math.ceil(len(data)/float(line_number)))
    temp = []
    for i in range(len(data)-1,-1,-1):
        temp.append(data[i])
        if i==(n-1)*line_number:
            reader = csv.writer(open("%s_%d.csv"%(name,n),'wb'))
            reader.writerow(head)
            for line in temp:
                reader.writerow(line)
            n-=1
            temp=[]
    print 'SourceFile -> %s'%(name)
    print 'FilePath -> %s'%(os.getcwd())
    print 'Status -> Success'
#读取文件内容并按行转化成数组
def read_csv(filepath,sign):
    reader = csv.reader(file(filepath,'rb'))
    data = []
    if sign==',':
        for line in reader:
            data.append(line)
    else:
        for line in reader:
            data.append(line[0].split(sign))
    return data
def read_file(filepath,sign):
    file = open(filepath)
    try:
        data = []
        reader = file.readlines()
        for line in reader:
            data.append(line.strip('n').split(sign))
        return data
    finally: 
        file.close()
        
if __name__=="__main__": 
    data = []
    filepath=''
    sign=''
    if len(sys.argv)==3:
        sign=','
    elif len(sys.argv)==4:
        sign=sys.argv[3]
    else:
        sys.exit()
    #获取文件名
    filepath=sys.argv[1]
    #获取数据
    data = read_file(filepath,sign)
    #获取分割数
    n=int(sys.argv[2])
    deal_csv(data[0],data[1:],filepath)
            

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读