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 谷歌翻译(国内) 译

浙公网安备 33010602011771号