“>”无法将python命令的输出定向到fi

2024-04-28 06:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我决定尝试snakefood来帮助进行重构以检查导入。它一直在屏幕上转储输出,并且“>;”不会将其发送到文件,它只是创建一个空文件。你知道吗

不幸的是,我不得不用python2.7创建一个virtualenv,因为它在python3中可能无法正常工作。尽管如此,它仍然可以检查python2项目,即使它是用python2编写的。我使用的是Mac,但在命令行上似乎使用了与Linux类似的命令。你知道吗

是的

pip install six
pip install graphviz
pip install snakefood

一旦Python2环境被激活。你知道吗

如果我打字

$ sfood-checker path/to/folder

…它在屏幕上转储大量文本,但是

$ sfood-checker path/to/folder > check.txt

…只创建一个空文件。有什么想法吗?怎么解决?想仔细翻阅一下文件中的崇高。你知道吗


Tags: installpip文件topathgtsfoodsnakefood
1条回答
网友
1楼 · 发布于 2024-04-28 06:43:34

您正在重定向stdout,但您的程序正在写入stderr。修复方法是重定向stderr

$ sfood-checker path/to/folder 2> check.txt

或者重定向两个stdoutstderr

$ sfood-checker path/to/folder &> check.txt

背景:最初创建进程时,通常总是为它们打开三个初始文件描述符:

  • 0,stdin,“标准输入”,只读流
  • 1,stdout,“标准输出”,一个只写流
  • 2,stderr,“标准错误”,一个只写流

stdoutstderr之间,除了约定和文件描述符编号之外,完全没有区别。按照惯例,状态消息和其他“信息”内容被输出到stderr(一些版本的fwrite(stderr, informational_data);),程序正常操作所需的数据被写入stdout。你知道吗

相关问题 更多 >