【发布时间】:2015-04-13 07:27:04
【问题描述】:
我为我的 python 程序准备了一个配置文件。配置文件包含我的变量,它使用了“i2cset”模块。它如下: 这是我的配置文件'try.ini'
[new]
a = ('i2cset', '-y', '0', '0x20', '0x14', '0x01')
我从我的主要代码中读取如下:
from ConfigParser import SafeConfigParser
parser=SafeConfigParser()
parser.read('try.ini')
def set21(tog=[0]):
tog[0]= not tog[0]
if tog[0]:
set0.config(text='p21_1')
A=parser.get('new', 'a')
subprocess.call(''.join(A), shell=True)
else:
set0.config(txt='p21_0')
但是每次我执行主程序时,我都会收到一条错误消息:
/bin/sh: 1: 'i2cset ': not found.
我不知道为什么会发生这种情况..当我在没有配置文件的情况下运行程序时,它执行得很好... 有人可以帮忙吗..
亲切的问候, 纳米塔。
【问题讨论】:
-
如何在代码中分配“a”?
-
对不起!我忘了提..我已经添加并更新了我的问题..请看一下..
-
那不可能是你的代码。没有什么叫做
ConfidParser,你不能分配给A,然后将它用作a,你不能随机缩进并期望它们起作用。请告诉我们minimal, complete, verifiable example,而不仅仅是像你的代码那样模糊的东西,可能包含也可能不包含你需要帮助的错误。 -
作为旁注,您为什么要
call(' '.join(a), shell=True)而不是仅仅将其保留为列表(因此您无需担心空格或其他怪异现象,因此您不必需要外壳)并且只是在做call(a)? -
随机猜测#1:您的实际代码执行
' '.join(…)两次;第一个将元组连接成一个字符串,每个元素之间有一个空格,然后第二个将字符串连接成一个字符串,每个字符之间有一个空格。修正:不要那样做。
标签: python config configparser