关于数据处理(持续更新.......)
几个实用的库
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文件