我有一个使用settings.cfg的python脚本,如下所示:
[site1]
url=http://boots4tall.com,http://myboots.com,http://boots.com,http://xbox.com,http://xboxOne.com
category=Boots,Boots,Boots,Xbox,Xbox
和python脚本函数:
def main():
config=ConfigParser.ConfigParser()
config.readfp(open("settings.cfg"),"r")
for site in config.sections():
# ipdb.set_trace()
settings=dict(config.items(site))
for (url,category) in zip(settings['url'].split(","),settings['category'].split(",")):
我的主要目标是为特定类别使用特定网址。大多数情况下,1个类别的1-4个不同的网址。所以我选择1个1类网址并让脚本执行与此网址+类别相关的任何操作。
我的问题:我有1200个类别和大约3000个网址。我很难在1行中手动添加这些类别+网址,这真的很难。所以我请求你的帮助,你可以帮助建立一个更好的系统吗?我想过从文本文件中读取行,例如1个文件urls.txt 1个文件categories.txt?代码应该如何寻找这种东西?
答案 0 :(得分:2)
根据您使用/需要的类别和网址数量,我会使用SQLite数据库来存储类别和URL,并在需要时检索它们。是的,它增加了一些开销和更多代码,但它更容易维护和更新。
答案 1 :(得分:0)
尝试将配置存储为json。在我看来,创建,加载和读取比配置文件容易得多。
您可以像这样创建一个JSON配置文件:
[{'category': 'Boots', 'url': 'http://boots4tall.com'},
{'category': 'Boots', 'url': 'http://myboots.com'},
{'category': 'Boots', 'url': 'http://boots.com'},
{'category': 'Xbox', 'url': 'http://xbox.com'},
{'category': 'Xbox', 'url': 'http://xboxOne.com'}
...
]
当您加载配置文件时,您可以迭代每个类别/网址对:
import json
with open('config.json') as f:
pairs = json.load(f)
for item in pairs:
category = item['category']
url = item['url']
# process them here...
如果您有Python中的类别和URL列表,那么最初生成这样的配置文件很容易:
import json
pairs = [{'url': url, 'category': category} for (url, category) in zip(urls, categories))]
with open('config.json', 'w') as f:
json.dump(pairs, f)