[Python-Delayed/Blocked ERROR] Al ejecutar un script de Python, la salida de la función de impresión se retrasa

Al ejecutar un script de Python, el problema de retraso de salida de la función de impresión

1. Descripción del problema

Cuando escribí un rastreador de python recientemente, usé la salida de la función de impresión para la depuración.Al llamar a chromedriver.exe a través de selenium para ejecutar, encontré un problema muy molesto, es decir, la salida de la impresión se retrasó, como el siguiente :

import io
import random
import re
import sys
import time
import os
from datetime import datetime

import pandas as pd
import xlwt
from pyquery import PyQuery as pq
from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.support.ui import WebDriverWait

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')  # 痛苦的根源

print("你好")
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
html = driver.page_source  # 获取页面数据
print(html)

En circunstancias normales, primero debe mostrar "Hola" y luego visitar la página de Baidu, es decir, la primera impresión debe aparecer antes que la segunda impresión y luego la consola, pero la situación real es que después de un tiempo, el programa finalizará pronto Cuando las dos impresiones se imprimen juntas, especialmente cuando se llaman a varios métodos, y el tiempo de acceso es largo, la demora es mayor, lo cual es anormal.

2. Soluciones

Este es un pequeño problema, pero es muy molesto. La fuente del dolor es que habilité el almacenamiento en búfer estándar al comienzo de mi código. Fue habilitado para resolver otro error.
Realmente llenó un agujero y luego otro agujero.
Hay dos soluciones:
1. Una es iniciar python con el parámetro de línea de comando -u para deshabilitar el almacenamiento en búfer de stdout

python3 -u test.py  # 改成你的Python文件名称

2. Comente el código de arriba

# 注意开启此项时会造成print数据阻塞,注释掉
# sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')

3. Artículos de referencia

https://blog.csdn.net/u012973744/article/details/18825123
https://blog.csdn.net/lmb1612977696/article/details/78648148

Supongo que te gusta

Origin blog.csdn.net/Artificial_idiots/article/details/121493891
Recomendado
Clasificación