如何提高使用PyCharm的效率 / 如何提高使用PyCharm的效率

PyCharm是一款广泛使用的Python集成开发环境,拥有丰富的功能和插件,能够帮助开发者提高开发效率。然而,有些开发者可能并不知道如何充分利用PyCharm的功能来提高效率。本文将介绍一些提高使用PyCharm效率的方法。

首先,熟练掌握PyCharm的快捷键是提高开发效率的关键。PyCharm提供了许多有用的快捷键,可以帮助开发者快速完成一些常见的操作,比如查找定义、运行调试等。开发者可以通过自定义快捷键来适应自己的使用习惯。

其次,利用PyCharm的代码自动补全功能可以极大地提高开发效率。代码自动补全可以帮助开发者在输入代码时快速补全代码,减少了输入代码的时间和出错的可能性。在PyCharm中,只需要输入一部分代码,然后按下Tab键或Ctrl+Space键即可自动补全代码。开发者还可以通过设置PyCharm的自动补全选项来适应自己的编码习惯。

另外,使用PyCharm的代码重构功能可以帮助开发者更好地组织和管理代码。代码重构可以帮助开发者进行代码的重构、重命名、提取方法等操作,从而提高代码的可读性和可维护性。PyCharm提供了丰富的代码重构功能,可以根据开发者的需求进行自定义。

最后,使用PyCharm的调试功能可以帮助开发者更快地定位和解决代码中的错误。PyCharm提供了强大的调试功能,可以在调试过程中查看变量的值、单步调试代码等操作。开发者可以通过设置断点来方便地进行调试。此外,PyCharm还提供了远程调试功能,可以帮助开发者在远程服务器上调试代码。

总之,熟练掌握PyCharm的快捷键、代码自动补全、代码重构和调试功能可以帮助开发者提高开发效率。PyCharm作为一款强大的Python开发工具,可以帮助开发者更快地开发高质量的代码,从而更好地完成工作。

文章完。

import pandas as pd  import numpy as np # pymysql接口 def mysql_conn(host, user, password, db, port=3306, charset="utf8"):   conn = pymysql.connect(host=host, user=user, password=password, database=db, port=port, charset=charset)   return conn   # 当前脚本的位置 current_folder_path = os.path.dirname(__file__)  # 你的文件的位置 your_file_path1 = os.path.join(current_folder_path, "文件的名字1") your_file_path2 = os.path.join(current_folder_path, "文件的名字2")  # 我这里是以读取csv文件为例, delimiter为我们内部约定的列之间的分割符 df1 = pd.read_csv(your_file_path1, dtype={"column1": str, "column2": str}, delimiter="/t") df2 = pd.read_csv(your_file_path2, dtype={"column1": str, "column2": str}, delimiter="/t") # 合并 ret_df = pd.merge(df1, df2, left_on=["column_name"], right_on=["column_name"], how="left")  # 先创建cursor负责操作conn接口 conn = mysql_conn("your db host", "your username", "your password", "db name") cursor = conn.cursor() # 开启事务 conn.begin()  # 先构造需要的或是和数据库相匹配的列 columns = list(df.columns) # 可以删除不要的列或者数据库没有的列名 columns.remove("列名") # 重新构造df,用上面的columns,到这里你要保证你所有列都要准备往数据库写入了 new_df = df[columns].copy()  # 构造符合sql语句的列,因为sql语句是带有逗号分隔的,(这个对应上面的sql语句的(column1, column2, column3)) columns = ','.join(list(new_df.columns))  # 构造每个列对应的数据,对应于上面的((value1, value2, value3)) data_list = [tuple(i) for i in gdsord_df.values] # 每个元组都是一条数据,根据df行数生成多少元组数据  # 计算一行有多少value值需要用字符串占位 s_count = len(data_list[0]) * "%s,"  # 构造sql语句 insert_sql = "insert into " + "数据库表名" + " (" + columns + ") values (" + s_count[:-1] + ")" try:   cursor.executemany(insert_sql, data_list)   conn.commit()   cursor.close()   conn.close() except Exception as e:   # 万一失败了,要进行回滚操作   conn.rollback()   cursor.close()   conn.close() 

完整代码

如果没问题的话,就可以同时进行多个文件读写,计算,最后启用多线程同时向数据库中写入数据了,非常高效!

检查数据库是否插入成功
cursor.executemany(insert_sql, data_list) conn.commit() cursor.close() conn.close() 

这个简单,直接上代码

将数据写入数据库
# 先创建cursor负责操作conn接口 conn = mysql_conn("your db host", "your username", "your password", "db name") cursor = conn.cursor() # 开启事务 conn.begin()  #############      构造批量数据的过程            #############  # 先构造需要的或是和数据库相匹配的列 columns = list(df.columns) # 可以删除不要的列或者数据库没有的列名 columns.remove("列名") # 重新构造df,用上面的columns,到这里你要保证你所有列都要准备往数据库写入了 new_df = df[columns].copy()  # 构造符合sql语句的列,因为sql语句是带有逗号分隔的,(这个对应上面的sql语句的(column1, column2, column3)) columns = ','.join(list(new_df.columns))  # 构造每个列对应的数据,对应于上面的((value1, value2, value3)) data_list = [tuple(i) for i in gdsord_df.values] # 每个元组都是一条数据,根据df行数生成多少元组数据  # 计算一行有多少value值需要用字符串占位 s_count = len(data_list[0]) * "%s,"  # 构造sql语句 insert_sql = "insert into " + "数据库表名" + " (" + columns + ") values (" + s_count[:-1] + ")" 

具体实现如下

1.类似这种: Insert into table_name (column) values (value);
2.executemany(批量插入语句)

1.数据插入要考虑写入一个事务,因为失败的话,要保证对数据库没有影响
2.构造符合对应接口的数据格式,通过查询,pymysql有两种可以执行语句的接口

对应接口转换数据
# pymysql的接口获取链接 def mysql_conn(host, user, password, db, port=3306, charset="utf8"):   # 传参版本   conn = pymysql.connect(host=host, user=user, password=password, database=db, port=port, charset=charset)   return conn 

导入三方库pymysql,初始化连接

初始化连接
# 这里以左连接举例, 假设只有两个文件拼接 ret_df = pd.merge(df1, df2, left_on=["column_name"], right_on=["column_name"], how="left") 

文件的拼接主要就是merge和concat两个语法的使用,强调一下小知识点

文件的拼接及计算
import pandas as pd  import numpy as np  # 当前脚本的位置 current_folder_path = os.path.dirname(__file__)  # 你的文件的位置 your_file_path1 = os.path.join(current_folder_path, "文件的名字1") your_file_path2 = os.path.join(current_folder_path, "文件的名字2")  # 我这里是以读取csv文件为例, delimiter为我们内部约定的列之间的分割符 df1 = pd.read_csv(your_file_path1, dtype={"column1": str, "column2": str}, delimiter="/t") df2 = pd.read_csv(your_file_path2, dtype={"column1": str, "column2": str}, delimiter="/t") 

给文件路径,然后去读文件就行了,强调一下需要注意的点

读取文件
分步实现及分析

实际上,最后一步,要写入数据库的文件数据是存储在内存中的。因为读取文件后进行的计算都是在内存中进行的,那么计算的结果也没必要再写到本地,再去读取,再写入数据库,这是会影响程序的效率的。逻辑如下

逻辑梳理
版本库信息

最近在处理一个需求,有关批量往数据库插入数据的,描述如下

需求原因

本文基于python, 使用pandas, pymysql等三方库实现了向数据库中高效批量插入数据,一方面提供被网上很多瞎转载的答案给坑蒙了的人(因为我也是),一方面自己也做个笔记,以后方便查阅.