(个人)读取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.打开网页,之后找到所显示的股票行情的 ...
随机推荐
- Linux 内核的文件 Cache 管理机制介绍
Linux 内核的文件 Cache 管理机制介绍 http://www.ibm.com/developerworks/cn/linux/l-cache/ 1 前言 自从诞生以来,Linux 就被不断完 ...
- zookeeper session tracker机制分析
说到zookeeper session管理 ,免不了要问 什么是session? session id/session是如何产生的? session 信息如何存储? 本文以session tracke ...
- os模块 关于路径问题使用
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...
- python_计算一段文本各个字符的出现个数
>题目要求 任意给定一段文本,求出每个字符出现的个数,并且打印出来 >程序实现 import pprint str01 = "重庆市,简称巴和渝,别称山城.渝都.雾都.桥都,中华 ...
- 遍历nsarray
// // main.m // 04-遍历数组 // // Created by apple on 14-3-21. // Copyright (c) 2014年 apple. All rig ...
- Xcode 6.x 添加Empty Application模板
Xcode 6.x 添加Empty Application模板 在Apple最新的XCode6.x中没有了Empty Application模板,这对一个老人来说是不能别接受的,同时也可以看出Appl ...
- mysqld_multi部署mysql单机多实例
1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2. ...
- simple python code when @ simplnano
code: import serial,time,itertools try: ser=serial.Serial(2,115200,timeout=0) except: print 'Open CO ...
- transient关键字的含义
transient java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持. Java的serialization提供了一种持久化对象实例的机制.当 ...
- Jenkins自动构建
Jenkins is an award-winning, cross-platform, continuous integration and continuous delivery applicat ...