如何在mac机器上使用python打开子进程来拖尾配置文件中的文件?

时间:2011-12-20 13:31:13

标签: python macos terminal

我试图在mac

上使用python来配置配置文件中的文件

我能够从配置文件中获取值,但无法为相同的

打开子进程

示例配置文件

  

[SECTION1]

     

host_prefix = true

     

timestamp_prefix = true

     

[第2节]

     

host = localhost

     

port = 1463

     

pids = / var / run / harvester

     

[文件]

     

apache.access = /var/log/apache2/access.log

     

apache.errors = /var/log/apache2/errors.log

     

mail = /var/log/mail.log

     

mysql.log = /var/log/mysql.log

我打开配置文件并尝试获取文件路径,我需要在单独的终端中的新子进程中尾随它们

    #! /bin/env python
import StringIO
import os
import re
from multiprocessing import Process
COMMENT_CHAR = '#'
OPTION_CHAR =  '='

def parse_config(filename):
    options = {}
    f = open(filename)
    for line in f:
        if COMMENT_CHAR in line:
           line, comment = line.split(COMMENT_CHAR, 1)
        if OPTION_CHAR in line:
            option, value = line.split(OPTION_CHAR, 1)
            option = option.strip()
            value = value.strip()
            options[option] = value
    f.close()
    return options

try:
    f = open("/etc/harvest.conf", 'r')
    print 'found'
    options = parse_config('/etc/harvest.conf')
    print options.values()
    os.system('tail -f options.values')
except:
        try: 
            f = open("/usr/local/etc/harvest.conf", 'r')
            print 'found'
            options = parse_config('/usr/local/etc/harvest.conf')
            print options.values()
            os.system('tail -f options.values')
        except IOError:
            print 'cannot find file'

上面的代码给出了配置文件中包含'localhost','1463'的所有值 但我只想要文件中的路径,需要在单独的子进程中尾随它们

2 个答案:

答案 0 :(得分:1)

试试ConfigParser。它可以与INI文件一起使用。

答案 1 :(得分:1)

  1. 使用os.path.exists检查文件是否存在
  2. 使用ConfigParser解析ini类型的配置文件