什么是Perl' print STDERR'在Python?

时间:2015-11-07 21:42:38

标签: python bash perl fish

我正在尝试重写一个同事制作的Perl脚本,你可以让你为目录添加书签。

它的工作方式是在文件夹中键入var familyTree = { name: 'Alex', children: [ { name: 'Ricky', children: [ ] }, { name: 'John', children: [ { name: 'Tom', children: [ ] } ] } ] }; var traverse = function(tree) { console.log(tree.name); for (var i = 0; i < tree.children.length; i++) { traverse(tree.children[i]); } }; traverse(familyTree); ,在终端中的任何其他位置键入go add dir,然后您将转到已添加书签的目录。

据我所知,go是一个使用以下代码调用perl脚本的bash函数:go dir。似乎打印出除了dir以外的任何东西它打印STDERR。当我在python中使用sys.stderr.write()时,它打印出文本,但它也打印出cd (godir)

这是一个编辑,因为我原来的问题不够具体。 我实际上找到了解决方案: 我的fish函数将评估Python脚本返回的内容

cd: The directory 'None' does not exist

2 个答案:

答案 0 :(得分:4)

在Python 2中,你可以这样做:

print >> sys.stderr, """Text to print"""

对于Python 3,语法为:

print("""Text to print""", file=sys.stderr)

当然,在两种情况下都需要import sys来导入sys模块。

答案 1 :(得分:0)

已回答here

  

我发现这是唯一的短+灵活+便携+可读:

     

from __future__ import print_function   ...

     

def warning(*objs): print("WARNING: ", *objs, file=sys.stderr)