-
程序开发用到的第三方库有:
pymysql:用于数据库连接,数据库查询
openpyxl:用于打开、编辑、保存xlsx文件
pandas:用于读取sql查询到的数据及保存到excel
pyinstaller:用于打包python文件
-
功能说明:
用户自定义数据库IP,要导出的mapcode,随后导出数据库中的数据到original.xlsx
读取excel,批量修改其中的值,保存到new.xlsx(运行程序前不能打开同文件名的文件,若有)
修改内容举例:
从表格中第二行开始,到行rows_incTitle结束,将列名:code(第2列)以及列名:bind_location(第21列)中的非数字用输入的标签代替
-
关键知识点(根据功能说明中的内容)
-
python语句基本常识
-
lbl = input('提示') #输入后复制到lbl为str格式
-
-
pd.read_sql连接数据库查询、查询语句参数化、查询后导出到excel表
-
import pymysql
db = pymysql.connect(
host=localhost,
port=3306,
user="user", # 在这里输入用户名
password="user", # 在这里输入密码
charset='utf8mb4'
)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() # 创建游标对象
sql = 'show databases' # sql语句
cursor.execute(sql) # 执行sql语句
sql = 'use berry;' # sql语句
cursor.execute(sql) # 执行sql语句
# 运用pandas的pd.read_sql()函数:将SQL查询或数据库表读入DataFrame 以下一句代码运行过可用 # 参数修改 来源MAPcode
# sql中的map_code参数化
sql = "select * from pol where code=%(pid)s and is_delete='0' ORDER BY id DESC"
code = 'M123'
# 给sql中的map_code传入值 使用mapCode值
df = pd.read_sql(sql, db, params={'pid': code})
# 保存到excel表格,如果原来有同名文件,会覆盖保存
df.to_excel(r'original.xlsx', index=False)
-
openpyxl库,可以处理表格
from openpyxl import load_workbook # 这种导入方法不用关闭工作表
# #读取original.xlsx文件赋给wbLoc(navicat应用导出到excel)。路径:D:\py\original.xlsx
wbLoc = load_workbook('./original.xlsx')
# 打开当前活动的工作表(适合一个工作簿只有一个工作表) 当前活动工作表定义为wsLoc
wsLoc = wbLoc.active
# 获取工作表的最大行数包含表头这一行(最大行数记录到:rows_incTitle-包括表头)
rows_incTitle = wsLoc.max_row
# 修改逻辑:去掉单元格值(单元格的值为str格式)中所有非数字;然后在头部加上设定的标签lbl;确保每个编码的唯一性。要注意仅处理有值的单元格。
for row in wsLoc.iter_rows(min_row=2, max_row=wsLoc.max_row, min_col=21, max_col=21):
for cell in row:
if cell.value is not None: # 这一行必须加,因为bind_location这列值可以为空,仅修改非空值。不加此行会返回报错:‘NoneType‘ object is not iterable
cell.value = lbl +''.join(filter(str.isdigit, cell.value))
# 另存表格为:new.xlsx
wbLoc.save('./new.xlsx')
-
Pycharm debug
步骤1 单击语句左侧打断点
步骤2 选择对应的文件,点击右侧debug按钮
步骤3 到达断点处,查看当前的各个变量,以及变量的当前值,和值的类型
更多说明见原文链接:
Pycharm如何打断点进行调试?_pycharm断点调试_程序员馨馨的博客-CSDN博客
-
打包py文件到可执行文件的方法
-
py文件使用代码编写程序运行成功(比如pycharm)
-
pip install pyinstaller 安装此程序
-
高级系统设置——环境变量——系统变量——Path——编辑 增加,如下图。根据实际的三方库路径决定
-
图中的值:C:\Program Files\Python38\Lib\site-packages
-
pyinstaller -F D:\py\mapeditor-export-modify.py 生成exe (C:\Windows\System32\cmd.exe管理员模式打开,在py目录运行后打包成功但运行失败;D盘根目录打包成功+打包后的exe运行成功)。下方截图中提示了dist文件夹下生成了exe文件