[問題] python 2.6.2與2.7.3 readlines的差異?
各位前輩好,小弟比較常出沒在小企鵝版跟C/C++版。
雖然工作上使用python的機會遠遠大於C,但是在這個版上算是潛水潛很大的了。
今天遇到一個小問題,之前可以用的程式換了新系統(9.04 -> 12.04)後就不能用了
查了一下,發現是這一段有問題:
f = os.popen('xfconf-query -c keyboard-layout -p /Default/XkbModel')
kb = f.readlines()
if kb[0].strip() == ...
然後用kb做判斷,
有的可能會傳回這個Property "/Default/XkbModel" doesn`t exist on channel
這代表沒有這個設定值。
在2.6之前這個也會一起被readlines()讀進來。下面的if可以繼續進行。
但是2.7以後就不會了,使得if kb[0]會有問題,因為它裡面是"空"的。
我在猜是不是因為沒有設定值時輸出的是stderr,然後2.7的readlines()只讀
stdout吐出來的東西?
另外不知道有沒有前輩可以提供一下2.6 跟 2.7的差異在哪?
我一直以為只有2.x 跟 3.x之間有差異 >.<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.43.99
→
05/17 14:45, , 1F
05/17 14:45, 1F
→
05/17 20:56, , 2F
05/17 20:56, 2F
→
05/18 00:07, , 3F
05/18 00:07, 3F
→
05/21 17:22, , 4F
05/21 17:22, 4F
→
05/21 17:22, , 5F
05/21 17:22, 5F
→
05/21 17:23, , 6F
05/21 17:23, 6F