配置文件config01.ini
[db01]
db_user = tbgx
db_pwd = tbgx
db_host = 192.168.2.200:1521/dysb
db_port = 1521
[db02]
db_user = root
db_pwd = root
db_host = 192.168.192.9
db_port = 3306
调取数据库登录信息
1.导入必要的python模块包
from configparser import ConfigParser
import string, os, sys
2.根据情况选择路径(本地、exe)
#在本地测试运行时的读取配置文件路径
exe_path = sys.path[0]
#打包exe的读取配置文件路径
exe_path = os.path.dirname(os.path.realpath(sys.argv[0]))
3.读取配置文件
# 读取配置文件
cf = ConfigParser()
cf.read(os.path.join(exe_path,'config01.ini'))
4.读取配置参数
#目标表数据库参数
db_user01 = cf.get('db01','db_user')
db_pwd01 = cf.get('db01','db_pwd')
db_host01 = cf.get('db01','db_host')
db_port01 = cf.get('db01','db_port')
#规则表数据库参数
db_user02 = cf.get('db02','db_user')
db_pwd02 = cf.get('db02','db_pwd')
db_host02 = cf.get('db02','db_host')
db_port02 = cf.get('db02','db_port')
上述python代码汇总
from configparser import ConfigParser
import string, os, sys
# 读取配置文件
cf = ConfigParser()
#在本地测试运行时
exe_path = sys.path[0]
#打包exe
#exe_path = os.path.dirname(os.path.realpath(sys.argv[0]))
cf.read(os.path.join(exe_path,'config01.ini'))
#目标表数据库参数
db_user01 = cf.get('db01','db_user')
db_pwd01 = cf.get('db01','db_pwd')
db_host01 = cf.get('db01','db_host')
db_port01 = cf.get('db01','db_port')
#规则表数据库参数
db_user02 = cf.get('db02','db_user')
db_pwd02 = cf.get('db02','db_pwd')
db_host02 = cf.get('db02','db_host')
db_port02 = cf.get('db02','db_port')
exe_path需要注意!!!
在本地测试运行时exe_path = sys.path[0]
打包成exe后,需要获取到执行exe的路径:os.path.dirname(os.path.realpath(sys.argv[0])),sys.argv[0]表示程序自身,realpath方法可以获取绝对路径.
修改为windows的相对路径,并用os.path.realpath(sys.argv[0])代替__file__
可以参考下面:
##获取脚本路径(不同python版本下)
def cur_file_dir():
#获取脚本路径
path = sys.path[0]
#判断为脚本文件还是py2exe编译后的文件,如果是脚本文件,则返回的是脚本的目录,如果是py2exe编译后的文件,则返回的是编译后的文件路径
if os.path.isdir(path):
return path
elif os.path.isfile(path):
return os.path.dirname(path)