关于数据处理(持续更新.......)

几个实用的库

open(name,mode)可直接处理文本文档;
xlrd读取excel;
xlwt写入excel;
openpyxl处理excel表格;
参考:https://blog.csdn.net/weixin_41546513/article/details/109555832
CSV对CSV文件进行读写;
参考:https://blog.csdn.net/u012162613/article/details/41915859
pdfplumber进行pdf文本读取(效果不是很好);
pdfminer对pdf上的文本内容进行识别

一些核心代码

1.遍历文件目录

import os
file_list = os.listdir(file_path)

2.读取表格文件
读取xlsx文件数据

import xlrd

data = xlrd.open_workbook('Assignment_Data.xlsx')#打开文件
sheet1 = data.sheets()[0] #指定为哪一个sheet
rowNum = sheet1.nrows
data = []
for i in range(rowNum):
    data.append([sheet1.cell(i,1).value,sheet1.cell(i,2).value])
print(data)

3.写表格文件

一些实用代码

1.word批量转pdf

import os,shutil
from win32com import client

def doc2pdf(doc_name, pdf_name):
    """
    :word文件转pdf
    :param doc_name word文件名称
    :param pdf_name 转换后pdf文件名称
    """
    try:
        word = client.DispatchEx("Word.Application")
        if os.path.exists(pdf_name):
            os.remove(pdf_name)
        worddoc = word.Documents.Open(doc_name,ReadOnly = 1)
        worddoc.SaveAs(pdf_name, FileFormat = 17)
        return pdf_name
    except Exception as e:
        print(e)
        return 1
    finally:
        worddoc.Close()
        word.Quit()

def doc2docx(doc_name,docx_name):
    """
    :doc转docx
    """
    try:
        # 首先将doc转换成docx
        word = client.Dispatch("Word.Application")
        doc = word.Documents.Open(doc_name)
        #使用参数16表示将doc转换成docx
        doc.SaveAs(docx_name,16)
    except:
        pass
    finally:
        doc.Close()
        word.Quit()

def createDirs(basePath=os.getcwd()):
    # 存放转化后的pdf文件夹
    pdfs_dir = basePath + '/pdfs'
    if not os.path.exists(pdfs_dir):
        os.mkdir(pdfs_dir)
    return pdfs_dir

def getFileNames(basePath=os.getcwd()):
    filenames=[]
    # move all .words files to words_dir
    for file in os.listdir(basePath):
        if file.endswith('.docx'):
            filenames.append(file)
        elif file.endswith('.doc'):
            filenames.append(file)
        else:
            pass
    return filenames

def convert(basePath=os.getcwd(),filenames=[]):
    pdfs_dir=createDirs(basePath)
    for filename in filenames:
        pdfName='.'.join(filename.split('.')[:-1])+'.pdf'
        doc2pdf(os.path.join(basePath,filename),os.path.join(pdfs_dir,pdfName))


if __name__ == '__main__':
    basePath=os.getcwd()
    lfileNames=getFileNames(basePath)
    print('are you going to convert these files to pdf?')
    for filename in lfileNames:
        print(filename)
    print("yes/no?")
    while True:
        command=input()
        if command=='yes':
            convert(basePath,lfileNames)
            break
        elif command=='no':
            break
        else:
            print('wrong command,input yes or no please')

2.把文件夹下所有文件的名称存入到一个excel中

import os
import xlwt

file_path = './a'        # 目录是整个D盘

# os.listdir(file_path)        # 列出所有的文件名

new_workbook = xlwt.Workbook()      # 新建工作簿new_workbook对象
worksheet = new_workbook.add_sheet('new_test')      # 新建工作表
n = 0
for i in os.listdir(file_path):
    worksheet.write(n, 0, i)        # 每一行写一个文件名
    n = n + 1
new_workbook.save('d:/file_name.xls')       # 保存在D盘下,生成file_name.xls文件
posted @ 2022-07-18 21:31  黑蛋的博客  阅读(49)  评论(0编辑  收藏  举报