更改使用“gdal_translate -of XYZ”创建的csv中的默认分隔符

时间:2017-01-10 10:55:21

标签: python csv gdal

我有100个.tiff文件,并使用以下命令:

gdal_translate -of XYZ MCD13A2.t201624.006.global.1km_NDVI.O0.tif MCD13A2.t201624.006.global.1km_NDVI.O0.csv

这会生成.csv文件,但它以空格分隔,而不是以逗号分隔。

有没有人知道为什么会这样,或者有任何解决方案将这个空格分隔的文件转换成逗号分隔的.csv?

2 个答案:

答案 0 :(得分:2)

您只需使用CSV模块:

import csv

with open(ur_infile) as fin, open(ur_outfile, 'w') as fout:
    o=csv.writer(fout)
    for line in fin:
        o.writerow(line.split())

它将使用空格分隔符自动读取您的CSV并使用逗号(默认情况下)写入。

此外,您可以指定分隔符:

csv.reader(csvfile, delimiter=' ')
csv.writer(csvfile, delimiter=',')

答案 1 :(得分:2)

google search显示了以下方法:

完成xyz转换后,您只需使用命令行实用程序sed(假设您使用linux):

sed 's/ /,/g' in.xyz > out.csv

由于您正在创建100个csv文件,因此您可能在for循环中使用gdal_translate,因此您可以在gdal_translate之后添加该额外行,您甚至不会注意到任何内容!

但是,如果你想使用@ iFlo的方法而不用担心内存不足问题,你可以查看this thread