txt批量转换成excel,txt批量转pdf
在将批量数据从txt转换成excel的日常工作中,经常会遇到大量的数据处理。尤其是大量的txt文件需要转换成excel,只能一个一个的粘贴复制。通过下面的代码,繁琐的数据处理可以在几分钟内完成。
环境需要python和python的熊猫库和openpyxl库。如果没有,可以从网络下载python,用pip安装库名安装pandas库和openpyxl库。
首先,我们需要读取文件中txt文件的名称。导入os库进行名称读取。
import osI import pandas def file _ name(file_dir):for root,dirs,files in OS . walk(file _ dir):dirs _ name=files return dirs _ name fils=list(file _ name(r e: Python idea EVP ))使用OS库,我们可以取出file _ dir目录中的root (path)、dirs(文件夹名)和files(文件名),这次我们只需要文件名,所以返回文件名。用file_name函数取出文件名后,用list函数把它变成一个列表,方便循环使用。
然后,我们需要使用pandas来获取txt中的数据。创建一个空的数据帧来存储数据。
data_new=pd。fils中I的data frame():data=PD . read_table(r e: python idea EVP I,header=None,encoding=gbk ,delimiter=s ,Index _ col=0)data _ new=PD . concat((data _ new,data))然后循环fils,取出文件名,使用pandas中的read _ table函数取出txt数据。read_table函数的第一个参数是文件的位置,header参数是有无列标签,encoding是编码方式。delimiter=s 此参数可以删除所有空格。用于有很多空格的txt,index_col=0。该参数可以将第一列转换为行索引。最后可以通过concat函数拼接读取数据。
最后,使用pandas中的to_excel输出数据。完整的代码如下:
import pandas as PD import OS def file _ name(file _ dir):for root,dirs,files in OS . walk(file _ dir):dirs _ name=files return dirs _ name fils=list(file _ name(r e: python idea EVP )# fils 1=fils[:400]# fils 2=fils[400:]# print(fils 1)data _ new=PD。fils中I的data frame():data=PD . read _ table(r e: python idea EVP I,header=None,encoding=gbk ,delimiter=s ,index _ col=0)data _ new=PD . concat((data _ new,data))# print(data _ new[0:10000000])data _ new[0:1000000]。to _ excel(r e: python idea EVP EVP . xlsx ,sheet _ name= sheet 1 )data _ new[10000000:]。to _ excel(r e: Python idea EVP EVP . xlsx ,sheet _ name= sheet2 )由于数据量大,也转换成了块。
添加了具有更好封装的代码。txt文件没有列名。自己指定就行了:
导入熊猫作为PD导入osdef搜索_文件(目录名,后缀): 这个函数可以搜索这个目录中所有带有指定后缀的文件param dirname: string,需要搜索的路径:param后缀:字符串,需要搜索指定的后缀:返回:filter_list: list,需要搜索的路径列表“”筛选器=[后缀] #设置过滤后的文件类型当然可以设置多个类型操作系统中主目录、子目录、文件名列表的filter_list=[]。行走(目录名):#打印(主目录)#当前主目录对于文件名列表中的文件名:apath=os.path.join(主目录,文件名)#合并成一个完整路径份额=OS。路径。split ext(apath)ext=portion[1]#获取文件后缀[0]获取的是除了文件名以外的内容if ext in filter:newname=portion[0]后缀filter_list.append((新名称,部分[0]).split( )[-1])# print(filter _ list)return filter _ listdef ACC _ data _ to _ excel(File _ name _ list): File _ list:Search _ File函数的结果。return:data_sum,DateFrame . data_sum=pd .File _ name _ list中目录,名称的data frame():data=PD。read _ table(dir,names=[station , b1 , b2 , b3 , year , month , day , evp , evp_e601 , a1 , a2],delimiter= s )data _ sum=data _ sum。append(data)返回data _ sum # data _ sum。to _ excel(r EVP _ every _ day。xlsx )# print(data _ sum)File _ list=Search _ File(r e: python idea txt )data=ACC _ data _ to _ excel(File _ list)data 1=data。iloc[:int(int(data。shape[0])/3),]data 2=data。iloc[int(data。shape[0])/3):int(int(data)。shape[0])/3)* 2,]data 3=data。iloc[int(data。shape[0])/3)* 2:]data 1。to _ excel(r EVP _ day 1。文件格式