2016-05-11 10 views
0

Arbeiten an einem CasperJS Tutorial und ich bekomme einen Fehler mit meiner Syntax. Verwenden von Python 3.5.1.Python Fehler: Drucken Subprocess.check_output - ungültige Syntax

Datei: scrape.py

import os 
import subprocess 

APP_ROOT = os.path.dirname(os.path.realpath(__file__)) 
CASPER = '/projects/casperjs/bin/casperjs' 
SCRIPT = os.path.join(APP_ROOT, 'test.js') 

params = CASPER + ' ' + SCRIPT 

print subprocess.check_output(params, shell=True) 

Fehler:

File "scrape.py", line 10 
    print subprocess.check_output(params, shell=True) 
       ^
SyntaxError: invalid syntax 

YouTube Video-Tutorial: Learning to Scrape...

+0

ohne Bezug: 1- wenn 'APP_ROOT' hat Räume in ihm; Der 'check_output()' Aufruf kann fehlschlagen, weil 'CASPER + '' + SCRIPT' nicht ist, wie die Befehlszeile erstellt werden sollte. Es scheint, Sie brauchen hier nicht die Shell 2-, wenn Sie die Ausgabe anzeigen möchten; Sie müssen es nicht erfassen: 'check_call ([CASPER, SCRIPT])' 3- minor: Sie könnten [get_script_dir() 'anstelle von' __file__' verwenden] (http://stackoverflow.com/a/22881871/4279) – jfs

Antwort

1

print subprocess.check_output(params, shell=True) Python 2 Syntax. print ist ein Schlüsselwort in Python 2 und eine Funktion in Python 3. Für letzteres müssen Sie schreiben:

print(subprocess.check_output(params, shell=True)) 
+0

Danke, ich habe festgestellt, dass der ganze Druck eine Funktion geworden ist, aber ich habe meine Klammer nicht richtig verstanden. – Casey