停止在Windows命令提示符下运行的python脚本时,避免数据丢失

时间:2016-03-07 07:38:55

标签: python windows bash

我写了一个Python脚本,它刮擦了某些网站。我从Windows命令行运行它并使用命令行将“print()” - 脚本输出指向txt文件。

像这样:

MyScraper.py> outputOfMyScraper.txt。

我必须在运行完成之前杀死/停止脚本(我关闭了Windows命令行)。 10次​​中的9次对outputOfMyScraper.txt文件没有影响,但是当关闭命令行时,将立即删除该文件的内容。

是否有 - 除了更改刮刀中的代码以直接将内容写入csv文件并完全避免使用Windows命令行 - 一种停止脚本而不会丢失数据风险的方法?

非常感谢。

1 个答案:

答案 0 :(得分:2)

您可以通过添加-u开关强制Python将标准输出切换到无缓冲模式:

python -u MyScraper.py > outputOfMyScraper.txt

另一种方法是将PYTHONUNBUFFERED环境变量设置为非空字符串:

set PYTHONUNBUFFERED=1
MyScraper.py > outputOfMyScraper.txt