(个人)读取A.CSV修改它的某列,写入B.CSV
#!/usr/bin/perl -w
use strict;
use warnings;
use Tie::File;
open(IN_FILE,"<E:/Hzj_works/test1.csv");
my $filename = "E:/Hzj_works/test1.csv";
tie my @array, 'Tie::File', $filename or die "$!";
if ( @array ) {
print "$filename have file. \n";
open(my $OT_FILE,">E:/Hzj_works/test2.csv");
while(my $line = <IN_FILE>){
my @fields = split "," , $line;
my @table;
my $tag1 = ",";
push(@table,"$fields[0]$tag1");
#if $fields[1]
my @timetemp = split ":" , $fields[1];
my $len = length($timetemp[0]);
my $hour;
my $min;
my $zero = "0"; #补0
if($len == 1){
$hour = "$zero$timetemp[0]";
}else{
$hour = $timetemp[0];
}
my $mint = substr($timetemp[1],0,1);
$min = "$mint$zero";
my $newtime = "$hour$mint$zero"; #变换后的时间
push(@table,"$newtime$tag1");
#假定 $fields[2]
my $mini = substr($fields[2],14,2); #获取分钟
my $minite = 30;#用于跟获取的时间比较
my $time1;
if($mini <= $minite){
my $mini1 = substr($fields[2],0,14);
my $mini2 = "30:00";
$time1 = "$mini1$mini2";
}else{
my $mini1 = substr($fields[2],0,14);
my $mini2 = "00:00";
#小时加1
my $hour1 = substr($fields[2],11,2);
my $hour2 = $hour1 + 1;
my $hour3 = substr($fields[2],0,11);
if($hour2 == 24){
$hour2 = "00";
}
my $tag = ":";
$time1 = "$hour3$hour2$tag$mini2";
}
push(@table, "$time1$tag1", "$fields[3]$tag1", $fields[4]);
print @table;
print $OT_FILE $_ for @table;
}
}
else {
print "$filename is empty. \n";
exit;
}
close(IN_FILE);
(个人)读取A.CSV修改它的某列,写入B.CSV的更多相关文章
- C# mvc读取模板并修改上传到web
C# mvc读取模板并修改上传到web 后台: public FileResult GetXls() { FileStream fs = new FileStream(System.Web.HttpC ...
- 在CSV文件中增加一列属性值
具体参见:系统管理\将文件夹复制到列表中的远程主机 修改前: column1, column2 1,b 2,c 3,5 修改后: column1, column2, column3 1,b, ...
- C# CSV文件的导入导出以及datatable转化csv
1.csv文件写入操作 首先,创建datatable对象: DataTable dt = new DataTable(); 添加列: dt.Columns.Add("name", ...
- 使用sql语句创建修改SQL Server标识列(即自动增长列)
一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统 ...
- IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...
- Easyui Datagrid 修改显示行号列宽度
EasyUI中Datagrid的第一列显示行号,可是如果数据量大的的时候,显示行号的那一列数据会显示不完全的. 可以通过修改Datagrid的样式来解决这个问题,在样式中加入下面这个样式,就可以自己修 ...
- 备忘:MySQL中修改表中某列的数据类型、删除外键约束
-- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...
- JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律
JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这 ...
- UiPath工具取得网页上面的数据,写入到csv,Outlook邮件发送
问题描述: 想取得网页上面的股票价格,之后写入到csv文本里面之后添加附件发送邮件. 解决方法: 利用UIPath工具来取得数据,之后写入再发送. 具体步骤: 1.打开网页,之后找到所显示的股票行情的 ...
随机推荐
- iOS小技巧2
这段代码是实现了类似QQ空间"我的空间"里面的圆形头像 //圆形的头像 UIImageView * headImage = [[UIImageView alloc]initWith ...
- 一些Demo链接
youtube下载神器:https://github.com/rg3/youtube-dl我擦咧vim插件:https://github.com/Valloric/YouCompleteMevim插件 ...
- set方法内存分析
// // main.m // 04-set方法的内存管理分析 // // Created by apple on 14-3-17. // // #import <Foundation/F ...
- C++ 基础复习 1
1. 友元 友元的作用是,友元函数内部可以直接访问外围类的private的字段或方法.通俗的理解就是解决了访问权限的问题. 1) 有点像java的内部类,但是只能在外围类中声明,定义(实现)部分要写在 ...
- Java基础之写文件——通过缓冲流写文件(StreamOutputToFile)
控制台程序,生成一些二进制整型值并且将它们写入到文件中. import java.nio.file.*; import java.nio.*; import java.io.*; public cla ...
- ads
(3) Make可以编译整个工程,并生成映像文件.在ADS中,ARM提供了三种映像文件, 1. Debug: 使用本生成目标生成的映像文件中包含了所有的调试信息,用于开发过程中使用 ...
- Leetcode: Frog Jump
A frog is crossing a river. The river is divided into x units and at each unit there may or may not ...
- Good Bye 2013
C:有点这种题的经验,先存起来相等的 D:赛后还搓了好久的代码,其实长度就100,枚举两边情况,其实A和C就涵盖了所有情况!所以到2就可以了,而且我弄出了有多少个后,和两边情况,也不知道能否或怎么凑成 ...
- [转]MySQL数据库引擎
经常用MySQL数据库,但是,你在用的时候注意过没有,数据库的存储引擎,可能有注意但是并不清楚什么意思,可能根本没注意过这个问题,使用了默认的数据库引擎,当然我之前属于后者,后来成了前者,然后就有了这 ...
- Python和Ruby开发中源文件中文注释乱码的解决方法(Eclipse和Aptana Studio3均适用)
Eclipse的设置(Aptana Studio3与Eclipse基本完全相同,此处略) window->preferences->general->editors->text ...