控制台警告文件

Mic*_*l C 3 python

我正在运行一个 python 脚本,用于pandas.read_csv导入 csv 文件。当 Pandas 没有看到预期的内容时,它会提供控制台警告,例如:

Skipping line 163: Expected 41 fields in line 163, saw 42
Run Code Online (Sandbox Code Playgroud)

我如何将其记录到文本文件中?

如果我从命令行运行脚本,python > logfile.txt则文件中仅显示 print 的输出,而不显示警告。

bla*_*ndt 5

使用stderr

在 bash 中,有 3 个默认流:

>STDOUT:由或重定向1>,这是程序的标准输出。

STDERR:由 重定向2>,这是程序的诊断输出。

STDIN:从控制台输入,用于<输入。


./prog 2> errorlog.txt >logfile.txt
Run Code Online (Sandbox Code Playgroud)

如果要将所有输出重定向到 STDOUT,请使用:

./prog 2>&1

Run Code Online (Sandbox Code Playgroud)

以下是更多信息: I/O 重定向