python txt2xls

笔者的数据量很大,共提取出5400+个txt文件,然而ArcGIS无法直接导入txt文件。而过多的数据量,使得逐一将txt导入excel成为不可能。于是转变思路,使用python将txt文件批量转为excel文件。参考以下网址资料,代码也附上做保存。

https://blog.csdn.net/ronon77/article/details/84776334;https://blog.csdn.net/qq_21780833/article/details/81558605;https://www.cnblogs.com/saryli/p/9947497.html

代码:

import os.path
import os
import xlwt  #xlwt库

path ="D:/Projects/wwlln/all/ceshi_py" #txt文件路径
pathe ="D:/Projects/wwlln/all/ceshi_excel" #输出xls文件路径
def txt2xls(fp,file): #txt转为xls,fp为txt文件,file为xls文件
    if os.path.exists(fp):  #检查文件是否存在
        print("converting",fp)  #如果存在就输出:正在处理
        f=open(fp)    #读取文件内容,存进变量 f 中
        wb=xlwt.Workbook(encoding='UTF-8',style_compression=0)    ##创建xls
        ws1=wb.add_sheet("sheet1")

        i=0
        for line in f.readlines():   ###按行读取 f 中的内容
            j=0
            for item in line.split('\t'):   ##读取相应内容写进item
                try:
                    item=item.strip()
                except unicodeDecodeError:
                    print(i,j,item)
                    ws1.write(ij,"NULL")
                else:
                    ws1.write(i,j,item)
                j=j+1
            i=i+1
        f.close()   ##关闭 f 单元
        wb.save(pathe+"/"+str(file[:-4])+".xls")  ##保存文件:在pathe路径下,并命名
        
def getfiles():
    files=os.listdir(path)
    for file in files:
        fp=path+"/"+file
        print(fp)
        txt2xls(fp,file)

if __name__=="__main__":
    getfiles()
    print("convertde,回车结束")

 

转换后的文件,为一列多行,数据之间是以空格的形式分开的,可使用excel数据分析中的分列功能分开。如何直接在python中分开....我不会。

由于txt数量过多,可在命令行下合并txt,可百度,so easy!按时间跨度,例如1year+,合并成年txt文件,再实用python将多年txt数据直接转为excel,此时数量已经不多了。这是进行数据分隔,导入ArcGIS。

end

翻译 朗读 复制 正在查询,请稍候…… 重试 朗读 复制 复制 朗读 复制 via 谷歌翻译(国内)

posted @ 2020-05-16 14:21  zmlog  阅读(333)  评论(0)    收藏  举报