【发布时间】:2014-07-09 12:58:57
【问题描述】:
我有一个大的 .csv 文件,其中存储了一些录音中的数据。其中一个字段包含录制的时间,我需要进行转换以便以后使用它们进行操作。
*Col 0, hh:mm:ss, col 2, col 3,...*
我知道如何使用单个值进行时间转换,它使用单个值。这行得通,
import decimal
from datetime import datetime
time = "14:55:36.629"
(hour,min,sec) = time.split(':')
result = int(hour) * 3600 + int(min) * 60 + float(sec)
decimal.Decimal(result)
但我无法在循环中插入它
with open('input.csv', 'r') as inf, open('output.csv','wb') as outf:
for row in inf:
t = row[1]
(h,m,s) = row[1].split(':') # Error here
result = int(h) * 3600 + int(m) * 60 + float(s)
decimal.Decimal(result)
outcsv = csv.writer(outf, delimiter=',')
我坚持转换,但同时我不确定以后是否能够将信息写入另一个文件。如何将所有值转换并解析为一列?
我也可以覆盖原始文件而不是打开另一个文件并在那里写入信息。
【问题讨论】:
-
您没有以 CSV 格式读取文件 -
row[1]是单个字符。