python删除文件夹中所有txt文件空行,并转化为表格文件

背景:因为一个项目需要,要将一个文件夹中所有txt文件进行处理,删除空行和转化为表格用word和excel都能做,但一个文件夹中有几十上百个文件那就另当别论了,太过于耗时耗力,于是突发奇想用一个python程序解决。

话不多说,直接代码:

  #用到的两个包,可能需要下载,用pip install xlwt可完成
    import os
    import xlwt
   
    #这个函数是做删除空行 
    def deleteSpaceLines(dirname):
    
        for maindir, subdir, file_name_list in os.walk(dirname):
    
            #print("1:",maindir) # 当前主目录
            #print("2:",subdir) # 当前主目录下的所有目录
            #print("3:",file_name_list) # 当前主目录下的所有文件
            #上面三句我给他注释掉了,是一个可有可无的测试语句
    
            #遍历文件夹中的所有文件,并进行相应操作
            for filename in file_name_list:
                path = os.path.join(maindir, filename)    # 合并成一个完整路径
                txt = []
                f1 = open(path,'r',encoding='ansi')     # 我的编码格式是ASNI,这个要视情况而定
                for line in f1.readlines():
                    if line != '\n':
                        txt.append(line)
                f1.close()
                os.remove(path)   #将原文件先删掉
                f2 = open(path,'w',encoding='ansi')
                f2.write(''.join(txt))  #把处理好的文本重新写入
                f2.close()
    
    #将所有文件转化为表格并存入指定路径
    def change(dirname,changePath):
        for maindir, subdir, file_name_list in os.walk(dirname):
    
            for filename in file_name_list:
    
                file = xlwt.Workbook(encoding='ansi')
                # 新建一个sheet
                sheet = file.add_sheet(filename)
    
                path = os.path.join(maindir, filename)
                i = 0
                j = 0
                excelLine = []
                f = open(path,'r',encoding='ansi')
                for line in f.readlines():
                    if i % 5 == 0 and len(excelLine) == 5:   
                    #我们需要的结果是原txt文件的每五行写入表格的一行中
                        for j in range(0, 5):
                            sheet.write(i//5, j, excelLine[j])   #excel中的行、列也是从0开始的
                        excelLine = []
                        excelLine.append(line)
                    else:
                        excelLine.append(line)
                    i += 1
                f.close()
                file.save(changePath + '\\' + filename + 'xls')    
                #一定不要忘记‘xls’,另外我这个存完后缀是.TXTXLS,用excel也是可以打开的,如果需要标准的.xls,就要先去掉filename的后缀
    
    if __name__ == '__main__':
        path = input('请输入原文件路径:')
        deleteSpaceLines(path)
        changePath = input('请输入转化后的路径:')
        change(path,changePath)

完!

    原文作者:韦又又V
    原文地址: https://blog.csdn.net/weixin_43461540/article/details/90183089
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞