【发布时间】:2014-12-24 20:14:00
【问题描述】:
我有几个配置文件。一个带有一些团队名称,另一个带有位置。我的每个用户都会上传一个包含团队和职位的文件。团队和职位必须与配置文件中的内容相匹配,否则将打印错误。我可以让脚本从每个配置文件中只读取一个值。它不会读取其余的值。如何让它读取配置文件中的所有值?
这是两个配置文件: 对于团队: [团队] 球队 = 巴塞罗那、拜仁、国际米兰、切尔西
职位:
[Positions]
positions = striker, midfielder, defender, goalkeeper
这是一个示例文本文件:
Teams Positions User ID
Barcelona goalkeeper BCTG-F
Barcelona striker BCTG-F
Bayern defender BCTG-F
Bayern striker BCTG-F
Inter striker BCTG-F
Inter midfielder BCTG-F
Chelsea midfielder BCTG-F
Chelsea goalkeeper BCTG-F
这是脚本:
#!usr/bin/python
from subprocess import *
import sys
import ConfigParser
import os
import csv
from sys import argv
script, user_id, team_file = argv
def main():
#get the actions
def teamCalls():
actions = ConfigParser.SafeConfigParser()
actions.read('/etc/nagios/ingestion/team.cfg')
for section_name in actions.sections():
for name, value in actions.items(section_name):
return '%s' %(value)
teamCalls()
#get the object types
def positionTypes():
objects = ConfigParser.SafeConfigParser()
objects.read('/etc/nagios/ingestion/position.cfg')
for section_name in objects.sections():
for name, value in objects.items(section_name):
return '%s' % (value)
positionTypes()
# checking path to file and user id
try:
f = csv.reader(open(team_file, "rb"), delimiter='\t')
except:
logging.error('No such file or directory. Please try again')
else:
for line in f:
for row in f:
if user_id != row[2]:
print ("User ID is incorrect")
elif teamCalls() != row[0]:
print ("Wrong team")
elif positionTypes() != row[1]:
print ("Position not valid")
else:
print row
finally:
print "all error checks done!"
main()
sys.exit(0)
【问题讨论】:
标签: python