使用python怎么将csv格式文件转为asc格式文件

  介绍

本文章向大家介绍使用python怎么将csv格式文件转为asc格式文件的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

python主要用来做什么

python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。

<强>一、背景描述

csv格式文件是一种类似于excel的文件格式

asc格式文件是一种可以用文字打开的文本文件

csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744年万行),arcgis处理不了如此大的文本,所以需要通过写代码实现(注:不是用python调用arcgis工具)

<强>二、格式说明

<强> csv格式:

使用python怎么将csv格式文件转为asc格式文件

asc图片

说明:第一列为id,第二列是值,第三第四列为值所在的行列号;csv的数据万共744行,直接打开无法全部加载

<强> asc格式:

使用python怎么将csv格式文件转为asc格式文件

<强>三,举例

需要的是将csv对应的某行某列的值预置值,写成asc格式的文件,检验是否成功转换的方式:将转成的asc文件加载到arcmap中进行查看,如上面的方面。asc在arcmap中是下图所示:

使用python怎么将csv格式文件转为asc格式文件

<强>四,附件说明

附件中给出是一个用作示例的csv、以及上文提到的方面。asc,用作参考

其实这个小程序的要求简单来说就是把csv数据逐行读取,然后对应地写成asc格式的文件,关键在于对asc文件格式的理解,希望在看了上述说明后,确定了解asc格式后再进行下一步的操作。

注:在arcmap中,csv转asc是这样实现的:通过创建xy事件图层,将csv转轴马力(此时的csv中预置值后面是xy坐标,这里我已经将坐标转为行列号行,坳了),随后通过要素转栅格工具,将轴马力转为栅格,最后用栅格转asc工具,将得到最终需要的asc

<强>五,实现方式:

这里是按行依次读取,所以需要通过excel操作将行所在列按顺序依次排列

& # 39; & # 39; & # 39;   Created 提醒;2017-3-21   @author: soundslow   & # 39;& # 39;& # 39;   #=utf-8 编码;   # python默认使用ASKII码保存文件,所以在文件开头需要声明保存编码的格式(例:#编码=utf - 8)   import 系统   得到sys  import  argv   import  csv   时间=argc  & # 39; 1. asc # 39;   script  filename =,命令行参数个数,argv   fw =,开放(命令行参数个数,& # 39;w # 39;)   #,字符串为:从ncols到NODATA_value这几行是一样的,因为数据源是一致的   string =, (“ncols , 4800 \ nnrows , 1550 \ nxllcorner  284687.500000 \ nyllcorner  2412912.500000 \ ncellsize  25.000000 \ nNODATA_value  -9999.000000 \ n")   fw.write(字符串)   fr =,开放(命令行参数个数,& # 39;" # 39;)   with 开放(& # 39;result_50_1.csv& # 39;), as  f:=,,reader  csv.reader (f)   ,& # 39;& # 39;& # 39;,   第才能一个为循环是为了提取出一个中间介质row_num作为行数的表示,   由才能于从表格中提取的数据(行号)并不是数字类型,   不才能能直接使用(1,==,f_rows[2]进行判断,所以直接使用自身的类型)。   (才能补充:应该是字符串类型)   ,& # 39;& # 39;& # 39;   ,for 我f_rows_temp 拷贝列举(读者):   ,如果(小姐:==,0):   ,继续=,,row_num  f_rows_temp [2]   ,打印(row_num)   ,打破   ,#遍历写入数据,遍历行数(即csv文件第三列f_rows [2]),   ,for 我f_rows 拷贝列举(读者):   ,如果(小姐:==,0):   ,继续   ,如果(f_rows [2], !=, row_num):, #,判断是否换行   fw.write才能(& # 39;\ n # 39;)   时间=row_num 才能;f_rows [2]   ,fw.write (f_rows [1])   ,fw.write (& # 39;, & # 39;)   ,sys.stdout.flush(), #强制IO刷新,写入文件数据   ,打印(f_rows[1]), #两个打印是为了便于观察数据运行情况   ,打印(f_rows)   ,fw.close ()   之前,fr.close () 使用python怎么将csv格式文件转为asc格式文件