【问题标题】:Python Error: print subprocess.check_output - invalid syntaxPython 错误:打印 subprocess.check_output - 语法无效
【发布时间】:2016-05-11 18:14:18
【问题描述】:

正在编写 CasperJS 教程,但我的语法出现错误。使用 Python 3.5.1。

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

【问题讨论】:

  • 不相关:1-如果APP_ROOT中有空格; check_output() 调用可能会失败,因为 CASPER + ' ' + SCRIPT 不是应该创建命令行的方式。看来,这里不需要 shell 2- 如果要显示输出;你不需要捕捉它:check_call([CASPER, SCRIPT]) 3-未成年人:你可以use get_script_dir() instead of __file__

标签: python python-3.x subprocess casperjs


【解决方案1】:

print subprocess.check_output(params, shell=True) 是 Python 2 语法。 print 在 Python 2 中是关键字,在 Python 3 中是函数。对于后者,您需要编写:

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

【讨论】:

  • 谢谢,我发现整个 print 变成了一个函数,但我的括号没有正确。
猜你喜欢
  • 2011-11-26
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
  • 2021-06-24
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
相关资源
最近更新 更多