2012-10-10 6 views
0

나는 목록에서 변수를 선택하기 위해 파이썬을 사용하려고 시도하고있다. 그런 다음 bash 명령을 사용하여 크게 말할 수있다. 지금 내가이 "X"라는이파이썬 변수를 bash 변수로 보내는 방법은 무엇입니까?

foo = ["a","b","c","d"] 
from random import choice 
x = choice(foo) 
foo.remove(x) 
from os import system 
system('say x') 

같은 것을 가지고는 x 변수의 값을 말하고, 나는 필요한 것입니다. 당신이 문자열 서식을 사용할 수있는 문자열을 전달할 때

+0

니스, 나는 Mac OS X에'say'이 있다는 것을 알지 못했습니다 :) –

+0

궁금한 점이 있으면 [os.putenv] (http://docs.python.org/library/os.html#os.putenv) 변수를 환경 변수 및 서브 프로세스에 내보내는 방법입니다. – Collin

+1

'system ('+ str (x)) '을 시도 했습니까? – VKen

답변

2

당신이 전달하는 astring 당신은

sytem('say {0}'.format(x))

같은 X의 값을 사용할 수 있습니다. 당신은 당신이하지 변수 x를 문자열에 x의 값을 얻을 필요가 실현으로 http://docs.python.org/library/string.html#format-examples

+2

이것은 이전 형식의 문자열 형식이며 새 소프트웨어에서는''str.format()''이 권장되는 방법입니다. 예 :''system { '{0}'. format (x))' '. –

0

당신은 format 사용할 수 있습니다

system('say {}'.format(x)) 
1

사용 문자열 형식 :

In [9]: x="ls -ld" 

In [10]: os.system("{0}".format(x)) 
drwxr-xr-x 41 monty monty 4096 2012-10-10 22:46 . 
Out[10]: 0 
+1

'os.system'은 유연성이 없으므로 오류가 발생하고 안전하지 않을 수 있습니다. 'subprocess' 모듈은 이것에 대해 훨씬 더 나은 기능을 제공합니다. –

3

을 당신을 생각 os.system을 사용할 수 있지만 더 좋을 수도 있습니다. subprocess :

import subprocess 
subprocess.call(['say',x]) 
관련 문제