Search code examples
pythonpython-3.xsubprocesscasperjs

Python Error: print subprocess.check_output - invalid syntax


Working on a CasperJS tutorial and I'm getting an error with my syntax. Using Python 3.5.1.

File: 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)

Error:

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

YouTube Video tutorial: Learning to Scrape...


Solution

  • print subprocess.check_output(params, shell=True) is Python 2 syntax. print is a keyword in Python 2 and a function in Python 3. For the latter, you need to write:

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