我使用Py2exe创建了一个Python可执行文件。我的python脚本从配置文件中选择值,但是当我将脚本编译为可执行文件时,值是硬编码的。有没有办法我仍然可以使用我的配置文件将值提供给我的可执行文件。
MyPythonScript
driver = webdriver.Firefox()
driver.maximize_window()
driver.get(url)
driver.find_element_by_name("UserName").send_keys(username)
driver.find_element_by_name("Password").send_keys(password)
Myconfigfile
url = 'http://testurl'
username = 'testdata'
password = 'testdata'
答案 0 :(得分:0)
不幸的是,您从配置文件中读取用户名和密码的方式并不明显。
除此之外,我建议您使用任何第三方来解析您的配置文件,例如configobj和configparser模块。
假设您指定配置文件的路径,当您按以下方式运行执行文件时:
my_script.exe c:\Myconfigfile.txt
并假设配置文件如下所示:
[login]
username = user01
password = 123456
这是两个如何做到这一点的例子:
import sys, ConfigParser
if len(sys.argv) < 2:
print "missing configuration file path"
config_path = sys.argv[1]
config = ConfigParser.ConfigParser()
config.readfp(open(config_path))
print config.get('login', 'username'), config.get('login', 'password')
import sys
if len(sys.argv) < 2:
print "missing configuration file path"
config_path = sys.argv[1]
config_hash = {}
with open(config_path, 'r') as config_stream:
lines = config_stream.readlines()
for line in lines:
key_value = line.split('=')
# skip lines that are not in the "key = value" format
if len(key_value) != 2:
continue
config_hash[key_value[0].strip()] = key_value[1].strip()
print config_hash['username'], config_hash['password']