txt 开关 csv 可通用 工具
Ruby Txt 开关 CSV 常用工具
to
require 'csv'namespace :sys_file_conver dodesc "把txt数据导入到csv中"task :txt_to_csv => :environment doamount = 100head_hash = {'对账文件名' =>[12],'商户号' =>[15],'商户类型' => [4],'清算日期' => [8],'总比数' => [12],'总金额' => [15, amount],'支付总比数' => [12],'支付总金额' => [15, amount],'退款总比数' => [12],'退款总金额' => [15, amount],'撤销总比数' => [12],'撤销总金额' => [15, amount]}body_hash = {'清算日期' => [8],'入账日期' => [8],'卡号' => [19],'交易类型' => [4],'交易金额' => [ 15, amount],'入账金额' => [ 15, amount],'手续费金额' => [ 15, amount],'流水号' => [6],'交易日期时间' => [10],'终端号' => [8],'商户号' => [15],'商户类型' => [4],'受理机构号' => [6],'系统检索号' => [12],'授权号' => [6],'渠道类型' => [2],'支付卡种' => [2],'订单号' => [40]}txt_file_path = ENV['txt_file_path'] || "#{Rails.root}/tmp/txt_file.txt"csv_file_path = ENV['csv_file_path'] || "#{Rails.root}/tmp/csv_file.csv"File.new(csv_file_path) if FileTest::exists?(csv_file_path)CSV.open(csv_file_path,'wb:gbk:gbk') do |data| # wb:gbk:gbk to gbk default encoding is utf-8data << hash_to_array_value(head_hash)txt_array = IO.readlines(txt_file_path, :encoding => 'GB2312')txt_array.each_with_index do |str,index|case indexwhen 0data << str_to_array_by_hash(str,head_hash)data << hash_to_array_value(body_hash)elsedata << str_to_array_by_hash(str,body_hash)end endendend
# ----------------------------Hash to array------------------------------------
def str_to_array_by_hash(str,hash)array = []hash_to_array_value(hash, 1).inject(0){ |idx, code|str_code = str[idx,code[0]]str_code = str_code.to_f/code[1] unless code[1].blank?array << convert_gbk(str_code)idx+code[0]}array
end# def hash_to_array_key(hash)
# hash.inject([]){|a,d| a << convert_gbk(d[0])}
# end
def hash_to_array_value(hash,i=0)hash.inject([]){|a,d| a << convert_gbk(d[i])}
end# ---------------------------Convert util--------------------------------------
def convert(str)
require 'iconv'
begin
converter = Iconv.new("UTF-8", "GB2312")
converter.iconv(str)
rescue
str
end
enddef convert_gbk(str)
require 'iconv'
begin
converter = Iconv.new("GB2312", "UTF-8")
converter.iconv(str)
rescue
str
end
endend
Html form tag
.upload-body= form_tag upload_file_file_converts_url, :multipart => true do%p%span.label 上传文件= file_field :public, :picture%p%input.button.ml20{ :type => 'submit', :value => '转码' }
controller upload to download
#iconv -f gbk csv_file.csv def upload_fileuploaded_io = params[:public][:picture] file = File.join("public", uploaded_io.original_filename)FileUtils.cp uploaded_io.path, filesend_file FileConvert.txt_convert_csv(file),:filename => "CSV-#{uploaded_io.original_filename} #{Time.now.strftime('%F %T')}.csv"end
版权声明:本文博客原创文章,博客,未经同意,不得转载。
txt 开关 csv 可通用 工具相关推荐
- txt格式转换成prg_Advanced CSV Converter v6.69下载(csv文件转换工具)
CSV文件是一个纯文本文件,有的时候,由于使用需求,需要将CSV转换为其他的格式使用,在这里,小编向大家推荐这款Advanced CSV Converter转换工具,它支持将CSV格式的文件转换成DB ...
- Online PDF to PNG, PDF to JPEG, PDF to WEBP, PDF to TXT - toolfk程序员在线工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
- R语言和RStudio安装,载入TXT、CSV和XLSX(利用RODBC)文件
系列文章 R语言进行系统聚类分析并作图(数据来源国家统计局) R语言载入arules程序包的Epub数据集,使用Apriori算法,进行关联规则分析 R语言利用贝叶斯分类法(klaR程序包),训练数据 ...
- Ubuntu中rosbag、txt、csv 格式文件的转换和bag文件图片的提取
1.数据集rosbag 1.1 录制所有话题的包 rosbag record -a 1.2 录制指定话题,设置 bag 包名为:bag_name rosbag record -O bag_name.b ...
- txt或者csv数据文件的格式是有要求的,如下shell代码中说明。
项目使用Oracle数据库,项目开发完成后,由于遗留系统的定制关系需要导入到库中,因为是一次性的,所有没有必要提供页面导入,决定使用Oracle提供的功能直接导入到Oracle库表中. txt或者cs ...
- python创建csv文件并写入-Python 将数据写入文件(txt、csv、excel)
一.将列表数据写入txt.csv.excel 1.写入txtdef text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表. file ...
- 使用python开发json、csv数据格式转换工具
使用python开发json.csv数据格式转换工具 json和xml是业界常用的数据格式,而游戏行业经常使用csv配表,包括本地化文本和数值.本文介绍csv和json序列化.逆序列化相关的pytho ...
- 【游戏开发】Excel表格批量转换成CSV的小工具
一.前言 在工作的过程中,我们有时可能会面临将Excel表格转换成CSV格式文件的需求.这尤其在游戏开发中体现的最为明显,策划的数据文档大多是一些Excel表格,且不说这些表格在游戏中读取的速度,但就 ...
- 在线CSV转YAML工具
在线CSV转YAML工具 在线CSV转YAML工具 CSV To YAML Converter 帮助你在线将 CSV 转换为 YAML 代码.CSV To YAML Converter 帮助你在线将 ...
最新文章
- Kubernetes 1.14 版本发布:正式支持Windows 节点,持久化本地卷进入GA
- 清华大学:刘洋——基于深度学习的机器翻译
- JZOJ 4421. aplusb
- oracle 主键列创建自增长,powerdesigner创建oracle 数据库表,设置表主键列为自动增长。 ....
- 千万级别数据查询优化_从千万级数据查询来聊一聊索引结构和数据库原理
- Java中native方法的使用
- mac免安装mysql配置_mysql免安装版配置使用
- 微信小程序开发---微信获取微信绑定手机号并登录流程
- 如何打开docx格式的文件?
- ChatGPT大规模封号...
- #2021暑假杭电多校8_1003.Ink on paper
- 我的python面试简历
- Python 列表(list)长度
- 刘韧:煮知识 论英雄
- vmware windows7安装usb3.0驱动
- 51单片机频率计c语言程序,51单片机简易频率计源代码
- 一文多图搞懂KITTI检测数据集下载使用(附网盘链接)
- 求N分之一序列的前N项和
- 数蚁的校园云存储优势 云资源管理平台 数蚁科技
- 用java代码实现查询数据库
热门文章
- 小程序 | 微信小程序from报名表单提交至数据库(含js提交函数)
- Android 获取app 地址,获取手机设备信息、app版本信息、ip地址
- 一个社交电商小程序配套的平台接
- 小说网站程序源码 自动采集 SEO优化
- Microsoft Enterprise Library 5.0 系列(二) Cryptography Application Block (初级)
- Magento调试 - 页面空白,打开错误报告的方法
- Magento 获取当前店铺信息(首页,类别,地址等)
- 【服务器】挖矿病毒 kdevtmpfsi(一针见效)
- 大数——大数判等(hdu2054)
- 泛型数组 List c# 1613647847