Neil.Liu
2021-01-22 15:18
采纳率: 50%
浏览 277

利用python将ASC文件批量转为Excel文件

现有数据整理的需求,需要将大量的ASC文件转化为规定格式的Excel文件,完全玩不转这些语言,想找人帮忙做个python的批处理文件,可以将ASC批量转化。

ASC文件

 收工转化的Excel文件

Excel文件

因为不是学计算机的,所以描述可能不清晰,有问题可以直接消息问我。

 

谢谢

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • bj_0163_bj 2021-01-22 17:12
    已采纳

    可以,发几个asc 文件给我

    已采纳该答案
    打赏 评论
  • 歇歇 2021-01-22 15:39

    50写个工具?

    打赏 评论
  • 深白色的风 2021-01-22 15:41

    把文件发上来,或者发我邮箱991432643@qq.com

    打赏 评论
  • niushaolongniuniu 2021-01-22 16:12
    import sys
    from sys import argv
    import csv
    argc = '1.asc'
    script ,filename = argc,argv
    fw = open(argc, 'w')
    # string为:从ncols到NODATA_value这几行是一样的,因为数据源是一致的
    string = ("ncols 4800\nnrows 1550\nxllcorner 284687.500000\nyllcorner 2412912.500000\ncellsize 25.000000\nNODATA_value -9999.000000\n")
    fw.write(string)
    fr = open(argc, 'r')
    with open('result_50_1.csv') as f:
    reader = csv.reader(f)
    '''
    第一个for循环是为了提取出一个中间介质row_num作为行数的表示,
    由于从表格中提取的数据(行号)并不是数字类型,
    不能直接使用(1 == f_rows[2]进行判断,所以直接使用自身的类型。)
    (补充:应该是字符串类型)
    '''
    for i,f_rows_temp in enumerate(reader):
    if(i == 0):
    continue
    row_num = f_rows_temp[2]
    print(row_num)
    break
    #遍历写入数据,遍历行数(即csv文件第三列f_rows[2])
    for i,f_rows in enumerate(reader):
    if(i == 0):
    continue
    if(f_rows[2] != row_num): # 判断是否换行
    fw.write('\n')
    row_num = f_rows[2]
    fw.write(f_rows[1])
    fw.write(' ')
    sys.stdout.flush() #强制IO刷新,写入文件数据
    print(f_rows[1]) #两个打印是为了便于观察数据运行情况
    print(f_rows)
    fw.close()
    fr.close()
    打赏 评论

相关推荐 更多相似问题