我尝试传递一个参数,该参数支持使用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很新,只是在努力解决这个问题。有什么想法吗?
答案 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'))