我2020年2月疫情期间开始陆陆续续的把Python语言自学开始了,学习过程中遇到问题就上csdn,这个网站呢学习过程中我的好帮手,所以今天最近自己开发django项目需要把所有的xls,xlsx,doc,docx文件的内容录入MySQL数据库然后制作一个本单位做一个数据库。今天我想利用csdn学的东西不少,所以我写成的这些代码给大家分享,里面有涉及的方面比较多,请大家如果需要慢慢了解一下。
说正事:需要的Python库以下:
from django.shortcuts import render, redirect
from django.http import HttpResponse, Http404, StreamingHttpResponse
from django.db import connection
from django.conf import settings
import time
from pydocx import PyDocX
import os
from win32com import client
import win32com
import pythoncom
import json
import xlrd
import re
import psutil
from pathlib import Path
import pymysql
import random
import xlwt
下面的是硬盘上的符合条件的word,Excel文件写入成一个文件,为了方便,删除重复,移除打不开的文件。
conn = pymysql.connect(host="127.0.0.1", user="root", password="root", db="mysite", port=3306)
BASE_DIR = Path(__file__).resolve().parent.parent
data = []
i = 0
workbook = xlwt.Workbook(encoding="utf-8")
worksheet = workbook.add_sheet("index")
for disk in psutil.disk_partitions():
# 获取磁盘列表['C:\\', 'D:\\', 'E:\\', 'F:\\', 'G:\\', 'H:\\', 'I:\\', 'J:\\', 'K:\\', 'L:\\', 'M:\\']
disk_list = disk.device
for root, dirs, files in os.walk(disk_list):
# print("1_{}_".format(root))
# print("2_{}_".format(dirs))
# print("3_{}_".format(files))
for a_files in files:
suffex_list = [".xls", ".xlsx", ".doc", ".docx"]
file_suffex_name = os.path.splitext(a_files)[1].lower() # 获取文件后缀名 .xlsx等
file_s_name_ = os.path.splitext(a_files)[0].lower() # 获取文件名
for a_suffex_list in suffex_list:
if a_suffex_list == file_suffex_name and re.search("[\u4e00-\u9fa5]", file_s_name_) and not re.search(
"[\$|~]", root) and not re.search("[\$|~]", file_s_name_):
# data.append(os.path.join(root, a_files))
# print(file_suffex_name)
# print(a_files)
# print(root)
# print(os.path.join(root, a_files))
i +=1
print(i)
path = os.path.join(root, a_files) # 获取整个文件地址与文件名
worksheet.write(i, 0, i)
worksheet.write(i, 1, path)
worksheet.write(i, 2, root)
worksheet.write(i, 3, a_files)
workbook.save("__$file_list.xls")
#csv_.close()
print(path)
#data.append(a_files)
#print(data)
进天写到这里剩下的测试过程中出了问题