2016-07-23 2 views
0

Ich habe zwei Skripte:Was ist der Unterschied zwischen diesen os.popen-Aufrufen?

Die ersten Arbeiten gut:

import os 
os.popen(‘grep abc filename’) 

Die zweite nicht funktioniert:

import os 
os.popen(‘grep abc’ + ’filename’) 

Aber das tut:

os.popen(‘grep abc filename’ + ‘>’ + ‘filename2’) 

I Also, kann den Unterschied nicht verstehen. Was ist falsch an der zweiten Version?

+3

Es gibt kein Leerzeichen zwischen 'abc' und' filename' im 2. Befehl. –

+0

Ich nehme an, dass Sie Python 2 ausführen. Sie sollten ['subprocess'] (https://docs.python.org/2/library/subprocess.html) (oder' subprocess32', wenn Sie in einem POSIX-Betriebssystem sind) verwenden. "os.popen" ist [veraltet] (https://docs.python.org/2/library/os.html?highlight=os.popen#os.popen). –

Antwort

1

Sie haben den Speicherplatz nach abc in der zweiten Version vergessen. Es sollte

import os 
os.popen(‘grep abc ’ + ’filename’) 

heißt abc˽' vs abc' sein.

Verwandte Themen