【问题标题】:Print statements giving Invalid Syntax error [duplicate]打印给出无效语法错误的语句[重复]
【发布时间】:2014-02-27 07:47:32
【问题描述】:

这似乎有点奇怪。我在通过批处理作业运行的 python 脚本中有一些打印语句。

问题出在打印语句上,我尝试了所有可能的方法,但仍然抛出 Invalid Syntax 错误。

print STDERR 'Kapil >> BEFORE INSERT';
print STDERR 'Kapil tag_id >> $tag_id';
print STDERR 'Kapil Hostname >> $hostname';

我必须让 STDERR 打印作业输出文件中的语句。否则什么都不会被打印出来。

  File "/d/home/aprun-prologue/aprun-prologue", line 169
    print STDERR 'Kapil >> BEFORE INSERT \n';
                                           ^
SyntaxError: invalid syntax

谢谢, 卡皮尔

【问题讨论】:

  • 看起来你复制了 Perl 代码,然后期望它在 Python 中工作。

标签: python


【解决方案1】:
import sys

print >>sys.stderr, 'Kapil >> BEFORE INSERT'
print >>sys.stderr, 'Kapil tag_id >> $tag_id'
print >>sys.stderr, 'Kapil Hostname >> $hostname'

【讨论】:

  • 试过了,但我的输出文件中又没有显示任何内容
  • 我们不确定 OP 是使用 python2 还是 python3,所以这对他们在 python3 上不起作用。如果是python3,他们需要print('Kapil >> BEFORE INSERT', file=sys.stderr)
  • 另外,假设他们确实复制了 Perl 代码并期望它能够工作,他们可能需要将变量放入字符串中,所以他们应该执行'Kapil tag_id >> {}'.format(tag_id)' 以获得完全相同的结果。
  • @user2907995 除非您在调用此脚本时将 stderr 传送到文件,否则此输出将打印到屏幕,而不是文件(stderr 不是文件)。
  • 我正在将 stderr 传送到文件中。工作的流程是,它首先调用一个调用 python 脚本的 perl 脚本。我在 perl 脚本中给出的任何打印语句 (STDERR) 都显示在 stderr 文件中,而不是 python 文件中。顺便说一句,它的 python 2.6 已安装而不是 3.0(我也检查了这个@Seth)
猜你喜欢
  • 2011-11-26
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多