本人菜鸟一枚,无编程基础,因为有时项目需要会找一些代码来改,希望能慢慢进步~
项目任务,开始需要把多个txt文件转成excel文件并筛选“Station_Id_d”列中指定字符所在的行,第一步就是先把txt转换为excel来进行筛选。数据如下图所示。
本来想做的是将多个txt文件批量转换成多个excel文件,但是我没找到合适的代码,所以现在这个也是个能行得通的方法。
参考了python-读取目录下所有txt文件并转化为一个excel的多个sheet_SLUMBER_PARTY_的博客-CSDN博客这个教程,但是我的txt文件的分隔符不是‘,’是空格,所以把sep=‘,’换成了delim_whitespace=True(用空格分隔每行数据)
代码如下
import os
import pandas as pd
writer = pd.ExcelWriter("E:\my_excel.xls", engine='openpyxl')#我要生成的excel的文件路径是my_excel.xls
num = 1
for root, dirs, files in os.walk('E:\EVP202007-202012'):
print(root) #当前目录路径
print(dirs) #当前路径下所有子目录
print(files) #当前路径下所有非目录子文件
for file in files:
tmp=pd.read_csv("E:\EVP202007-202012/%s"%(file),delim_whitespace=True)
tmp.to_excel(excel_writer=writer, sheet_name=file)
writer.save()
结果如下:
不过这个操作看起来并不能完全解决我的问题。下一篇我会换一个方法,把多个txt合并成csv然后筛选我想要的行。