在csv中为每列添加文本

时间:2014-04-15 09:53:51

标签: python csv

我需要一个python脚本来在csv文件的每一列中添加文本。文件夹中有330个csv文件,格式为:

14-04-03T08:52:38;...
14-04-03T08:52:39;...
14-04-03T08:52:40;...
...

我需要这种格式(2014年代替14):

2014-04-03T08:52:38;...
2014-04-03T08:52:39;...
2014-04-03T08:52:40;...
...

我怎么能意识到这一点?

我的打印代码示例:

import os
import sys 
import csv
dirList = os.listdir(sys.argv[1])
dirList.sort()
for sFile in dirList:
    changeFile = sys.argv[1] + sFile
    print changeFile          
    with open(changeFile, 'rb') as f:
        reader = csv.reader(f, delimiter=';')
        for row in reader:
            print row[0]

使用此输出:

14-04-03T12:03:34
14-04-03T12:03:35
14-04-03T12:03:36

如何添加" 20"到每一栏的开头?

2 个答案:

答案 0 :(得分:0)

一种方法是将文件作为文本文件打开并读取每一行,然后将“20”+行写入输出文件,删除原始文件并将输出重命名为原始文件。

答案 1 :(得分:0)

在阅读CSV文件的每个元素时,只需解析并转换日期字符串即可。

你可以通过以下方式完成:

import time
import datetime

datetime.datetime(
    *(time.strptime("14-04-03T08:52:38","%y-%m-%dT%H:%M:%S")[:6])
).strftime('%Y-%m-%dT%H:%M:%S')

那它做了什么?

它将您的一个日期字符串作为输入,如"14-04-03T08:52:38"并将其解析为实时对象。 我们将此时间对象转换为日期时间对象,并将其重新格式化为您的年份的不同输出,因此:'2014-04-03T08:52:38'

现在你只需要替换csv中的值,然后关闭:-)

import os
import sys 
import csv
import datetime
import time

dirList = os.listdir(sys.argv[1])
dirList.sort()
for sFile in dirList:
    changeFile = sys.argv[1] + sFile
    print changeFile          
    with open(changeFile, 'rb') as f:
        reader = csv.reader(f, delimiter=';')
        for row in reader:
            print datetime.datetime(
                      *(time.strptime(row[0],"%y-%m-%dT%H:%M:%S")[:6])
                  ).strftime('%Y-%m-%dT%H:%M:%S')