我在.csv中有很多数据,如下所示:
-959.378170,-0.000026,-94.960000,1508.000000,9.000000,
-958.978170,-0.000026,-94.920000,1508.000000,9.000000,
-958.578170,-0.000026,-94.880000,1508.000000,10.000000,
-958.178170,-0.000026,-94.840000,1508.000000,10.000000,
-957.778170,-0.000026,-94.800000,1508.000000,10.000000,
最后两列应该是时间. 15是小时,08是分钟,6是秒.最终目标是加入他们,让我得到类似的东西:
-958.978170,-0.000026,-94.920000,15:08:09,
-958.578170,-0.000026,-94.880000,15:08:10,
我怎样才能做到这一点?
解决方法:
import fileinput
import re
# Assume the input file is foo.csv
for line in fileinput.FileInput('foo.csv', inplace=1):
mm = re.search(r'^(.+?,.+?,.+?,)(\d{1,2})(\d{2})\.0+,(\d{1,2})\.0+',
line)
g1, g2, g3, g4 = mm.group(1), int(mm.group(2)), int(mm.group(3)), int(mm.group(4))
print "%s%02i:%02i:%02i," % (g1, g2, g3, g4)
在示例上运行它会导致…
-959.378170,-0.000026,-94.960000,15:08:09,
-958.978170,-0.000026,-94.920000,15:08:09,
-958.578170,-0.000026,-94.880000,15:08:10,
-958.178170,-0.000026,-94.840000,15:08:10,
-957.778170,-0.000026,-94.800000,15:08:10,
标签:csv,python
来源: https://codeday.me/bug/20191201/2077339.html