import xlrd
from pymysql import *
import re
import os,shutil
import time
#处理文件,把G:/2017年更新2018年楼盘/文件夹下打不开或者格式不结构的文件移动到G:/新建文件夹/下
def wenjianchuli():
file_dir='G:/2017年更新2018年楼盘/'
for root, dirs, files in os.walk(file_dir):
# print(root) # 当前目录路径
# print(dirs) # 当前路径下所有子目录
# print(files) # 当前路径下所有非目录子文件
for x in files:
path = root + x
print(path)
#成功打开并打印成功,说明该文件可处理
try:
#打开文件
data=xlrd.open_workbook(path)
#查询工作表
sheets=data.sheets()
sheet_1_by_index=data.sheet_by_index(0)
row_values=sheet_1_by_index.row_values(1)
# col_values=sheet_1_by_index.col_values(1)
print(row_values)
#否则,不能处理的文件移动到新建文件夹
except:
taget = 'G:/新建文件夹/'
shutil.move(path,taget+x)
print('移动{}成功'.format(str(x)))
time.sleep(4)
#数据处理成功的先拿到另外的文件夹下去,免得程序中断要重头跑
def success_move(file,path):
taget = 'G:/2017年更新2018年楼盘副/'
fils = str(file)
shutil.move(path, taget + fils)
print('移动{}成功'.format(fils))
time.sleep(4)
#处理数据
def shujuchuli():
file_dir='G:/2017年更新2018年楼盘/'
for root, dirs, files in os.walk(file_dir):
# print(root) # 当前目录路径
# print(dirs) # 当前路径下所有子目录
# print(files) # 当前路径下所有非目录子文件
for file in files:
path = root + file
print(file)
print(path)
#打开文件
data=xlrd.open_workbook(path)
#查询工作表
sheets=data.sheets()
# 可以通过函数、索引、名称获得工作表。
# sheet_1_by_function=data.sheets()[0]
# sheet_1_by_index=data.sheet_by_index(0)
sheet_1_by_index = data.sheet_by_index(0)
# 可以通过方法获得某一列或者某一行的数值。
row_values=sheet_1_by_index.row_values(1)
col_values=sheet_1_by_index.col_values(1)
# print(row_values,col_values)
# 通过工作表的属性获得行数和列数。
n_of_rows=sheet_1_by_index.nrows
n_of_cols=sheet_1_by_index.ncols
# print(n_of_rows,n_of_cols)
conn = connect(host='127.0.0.1', port=3306, user='root', passwd='', db='shuju', charset='utf8')
# 也可以用一个循环来遍历一次文件。
for i in range(n_of_rows):
masage=sheet_1_by_index.row_values(i)
print(masage)
for x in range(n_of_cols):
try:
#如果转整数成功,说明是数字
number=int(masage[x])
#如果数字长度等于11,有可能是电话
number=str(number)
if len(number)==11:
print(number)
print('成功')
cursor = conn.cursor()
query = cursor.execute("insert into shuju(telephone)values(%s)", (number))
conn.commit()
except:
print(masage[x])
print('失败')
# conn.close()
success_move(file, path)
if __name__ == '__main__':
# wenjianchuli()
shujuchuli()
批量处理excel到sql中
最新推荐文章于 2022-09-10 15:22:15 发布