2016-05-11 130 views
0

在CasperJS教程上工作,我的語法出錯。使用Python 3.5.1。Python錯誤:print subprocess.check_output - 無效的語法

文件: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) 

錯誤:

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

的YouTube視頻教程:Learning to Scrape...

+0

無關:1-如果'APP_ROOT'中有空格; 'check_output()'調用可能會失敗,因爲'CASPER +''+ SCRIPT'不是應該如何創建命令行的。看起來,如果你想顯示輸出,你不需要這裏的shell;你不需要捕獲它:'check_call([CASPER,SCRIPT])'3- minor:你可以[使用'get_script_dir()'而不是'__file__'](http://stackoverflow.com/a/22881871/4279) – jfs

回答

1

print subprocess.check_output(params, shell=True)是Python的2語法。 print是在Python 2關鍵字和在Python 3.對於後者的功能,則需要寫:

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

謝謝,我發現整個打印成爲一個函數的東西,但沒有得到我的括號正確。 – Casey