我正在运行一个 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 的输出,而不显示警告。
使用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 重定向