Joe*_*art 1 python csv parsing
我目前正在使用python,读取一个CSV文件,然后将最后一列写入另一个CSV文件.
我的阅读和写作代码是:
with open('source.csv', 'rb') as csvfile:
rdr = csv.reader(csvfile, delimiter=',', quotechar='|')
with open('result.csv', 'wb') as result:
wtr = csv.writer(result, delimiter=',', quotechar='|' )
for r in rdr:
wtr.writerow((r[2]))
Run Code Online (Sandbox Code Playgroud)
输入看起来像这样:
#SYMBOL_NAME,TIMESTAMP,VALUE
,20140909230500.000000,0.000000
,20140909231000.000000,0.000000
,20140909231500.000000,0.000000
,20140909232000.000000,0.000000
,20140909232500.000000,0.000000
Run Code Online (Sandbox Code Playgroud)
我对时间戳不感兴趣,因为生成它的软件,在这个例子中,符号名称是一个空列.
我希望我的输出是这样的:
VALUE
0.000000
0.000000
0.000000
0.000000
0.000000
Run Code Online (Sandbox Code Playgroud)
但是我实际上得到了这个:
V,A,L,U,E
0,.,0,0,0,0,0,0
0,.,0,0,0,0,0,0
0,.,0,0,0,0,0,0
0,.,0,0,0,0,0,0
0,.,0,0,0,0,0,0
Run Code Online (Sandbox Code Playgroud)
现在我很确定这是因为delimiter=','在这一csv.writer部分.但是,当我尝试设置 delimiter=''删除逗号时,我被告知必须至少有一个字符串.
当我delimiter一起删除参数然后我得到完全相同的输出.
writerow()期望列表作为参数.当你给这样一个字符串时......
wtr.writerow((r[2]))
Run Code Online (Sandbox Code Playgroud)
...它会将字符串字符解释为列表项,并将它们作为单独的列放入csv中.这样做
wtr.writerow([r[2]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
773 次 |
| 最近记录: |