尝试将参数传递给子系统,但正在输出制表符

时间:2015-03-23 16:31:00

标签: python json

我尝试传递一个参数,该参数支持使用syslog进行详细日志记录。将-v传递给应用程序肯定会按预期工作。所以我试图将此选项添加到json配置文件中。

这是我在json配置中的内容:

"rtl": {
            "freq": 144.390,
            "ppm": -3,
            "gain": 44.5,
            "debug": true,
            "offset_tuning": false,
            "device_index": 0,
    },

以下是我在代码中的内容。注意:除非添加-v语句,否则所有其他部分都有效。

if self.config['source'] == 'rtl':
   proc_src = subprocess.Popen(
   ['rtl_fm', '-f', str(int(self.config['rtl']['freq'] * 1e6)), '-s', '22050',
   '-v', str(self.config['rtl'].get('debug', 'true')), '-v'],,
   '-p', str(self.config['rtl']['ppm']), '-g', str(self.config['rtl']['gain']),
   '-E', 'offset' if self.config['rtl'].get('offset_tuning', False) else 'none',
   '-d', str(self.config['rtl'].get('device_index', 0)), '-'],
   stdout=subprocess.PIPE, stderr=open('/dev/null')
)

这是我得到的错误:

SyntaxError: ('invalid syntax', ('/usr/local/lib/python2.7/dist-packages/pymultimonaprs/multimon.py', 37, 62, "\t\t\t\t\t'-v', str(self.config['rtl'].get('debug', 'true')), '-v'],\n"))

似乎标签会被抛入-d语句中。我对python很新,只是在努力解决这个问题。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

两个逗号:

'-v', str(self.config['rtl'].get('debug', 'true')), '-v'],,
                                                         ^^

答案 1 :(得分:0)

proc_src = subprocess.Popen(
   ['rtl_fm', 
    '-f', str(int(self.config['rtl']['freq'] * 1e6)),
  '-s', '22050',
   '-v', str(self.config['rtl'].get('debug', 'true')), 
  '-v', #?
   '-p', str(self.config['rtl']['ppm']), 
   '-g', str(self.config['rtl']['gain']),
   '-E', 'offset' 
   if self.config['rtl'].get('offset_tuning', False) else 'none',
   '-d', str(self.config['rtl'].get('device_index', 0)), '-'
   ],
   stdout=subprocess.PIPE, stderr=open('/dev/null'))