Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python ftputil输出到终端,尽管我想将输出重定向到文件_Python 3.x_Logging_Ftputil - Fatal编程技术网

Python 3.x Python ftputil输出到终端,尽管我想将输出重定向到文件

Python 3.x Python ftputil输出到终端,尽管我想将输出重定向到文件,python-3.x,logging,ftputil,Python 3.x,Logging,Ftputil,我在终端上运行了一个Python3脚本,在终端上它写出了我添加的很多打印语句,以及我正在使用的库的输出 我希望将输出保存在一个文件中,所以我像这样运行脚本 python3 myscript.py>logfile.txt 现在,我从Python中打印的所有内容都会按照我的需要进入文件,而不是打印到终端 然而,在这个脚本中,我也在使用库下载文件,ftputil的一些输出仍然显示在我运行脚本的终端上。所以现在我的程序的输出被分成两部分,这使得它不那么有用 download-ftp.py:160: De

我在终端上运行了一个Python3脚本,在终端上它写出了我添加的很多打印语句,以及我正在使用的库的输出

我希望将输出保存在一个文件中,所以我像这样运行脚本

python3 myscript.py>logfile.txt

现在,我从Python中打印的所有内容都会按照我的需要进入文件,而不是打印到终端

然而,在这个脚本中,我也在使用库下载文件,ftputil的一些输出仍然显示在我运行脚本的终端上。所以现在我的程序的输出被分成两部分,这使得它不那么有用

download-ftp.py:160: DeprecationWarning: `use_list_a_option` will default to `False` in ftputil 4.x.x with ftputil.FTPHost(ftp_addr, ftp_user, ftp_pw) as ftp_host:

要使ftputil的输出也进入我想要的文件,需要做什么?

没错,这个弃用警告来自ftputil

ftputil使用Python显示此警告。警告模块不仅在默认情况下将警告输出到stderr,而且还提供了控制实际显示哪些警告的方法

您可以使用以下命令抑制ftputil警告:

进口警告 进口汽油 带有警告。捕捉警告: warnings.simplefilterignore,类别=弃用警告 ftp_host=ftputil.FTPHosthost,用户,密码 ... 如果您确实希望日志文件中出现弃用警告,可以使用其他人在注释中建议的方法。下面是一个例子:

导入系统 进口汽油 old_stderr=sys.stderr sys.stderr=sys.stdout 尝试: ftp_host=ftputil.FTPHosthost,用户,密码 最后: sys.stderr=old\u stderr
看看这里:谢谢,我已经看到了这个答案,根据上面的答案,我建议了一种更常见的方法,即在Windows和Linux上执行相同的命令时使用shell重定向:$python foo.py>file。不过可能需要阅读其余部分。是的,我不知道为什么ftputil输出没有重定向,但是如果它是纯python,那么更改sys.stdout和sys.stderr应该会起作用……我想我可能也需要重定向stderr,正如ftputil维护器在这里解释的那样:通常,ftputil不应该有任何shell输出。您看到的可能来自ftputil的输出是什么?