下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
# Coding:utf-8# python 2.7import csvimport mathimport sysimport osfrom 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 datadef 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)
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的分割csv文件全部内容,希望文章能够帮你解决分割csv文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)