我写了一个Python脚本,它刮擦了某些网站。我从Windows命令行运行它并使用命令行将“print()” - 脚本输出指向txt文件。
像这样:
MyScraper.py> outputOfMyScraper.txt。
我必须在运行完成之前杀死/停止脚本(我关闭了Windows命令行)。 10次中的9次对outputOfMyScraper.txt文件没有影响,但是当关闭命令行时,将立即删除该文件的内容。
是否有 - 除了更改刮刀中的代码以直接将内容写入csv文件并完全避免使用Windows命令行 - 一种停止脚本而不会丢失数据风险的方法?
非常感谢。
答案 0 :(得分:2)
您可以通过添加-u
开关强制Python将标准输出切换到无缓冲模式:
python -u MyScraper.py > outputOfMyScraper.txt
另一种方法是将PYTHONUNBUFFERED
环境变量设置为非空字符串:
set PYTHONUNBUFFERED=1
MyScraper.py > outputOfMyScraper.txt