Dado un archivo de texto, cada línea es una información bursátil, escriba un programa para extraer todos los códigos bursátiles

Pregunta: dado un archivo de texto, cada línea es una información bursátil, escriba un programa para extraer todos los códigos bursátiles. Entre ellos, la regla del código de stock es: 6 dígitos
y terminan en .SH o .SZ.
Ejemplo de contenido de archivo:
2020-08-08; Ping An Bank (000001.SZ); 15.55; 294.00 mil millones
2020-08-08; Medicina Hengrui (600276.SH); 95.32; 495.65 mil millones (incluido el valor de mercado no negociable)
... ...
2020-08-08; CATL (300750.SZ); 205,32; 465,7 mil millones
Salida:
['000001.SZ','600276.SH'.......'300750.SZ']

respuesta:

import re

# 打开文件并读取所有行
with open('file.txt', 'r') as f:
    lines = f.readlines()

# 定义正则表达式规则
pattern = re.compile(r'\d{6}\.[SZ]{2}')

# 提取所有股票代码
codes = []
for line in lines:
    match = pattern.search(line)
    if match:
        codes.append(match.group())

# 输出所有股票代码
print(codes)

En este código de muestra, primero abrimos el archivo y leemos todas las líneas en una lista. Luego, definimos una regla de expresión regular para que coincida con los símbolos bursátiles. A continuación, usamos un bucle para recorrer todas las filas y buscar tickers que coincidan con la regla. Finalmente, almacenamos todos los tickers coincidentes en una lista y los mostramos.

Tenga en cuenta que el nombre de archivo aquí debe cambiarse a su nombre de archivo real, no a 'archivo.txt'.

Pero habrá un error:

content = f.readlines()
UnicodeDecodeError: el códec 'gbk' no puede decodificar el byte 0xa1 en la posición 21: secuencia ilegal de varios bytes

 razón:

Este error generalmente es causado por una codificación de archivo que no coincide con la codificación utilizada por Python. Puede intentar especificar el método de codificación de archivos, por ejemplo:

con open('archivo.txt', 'r', codificación='utf-8') como f:
    líneas = f.readlines()

 Entonces, cuando ocurra este problema, simplemente

se convierte

with open('file.txt', 'r',encoding='utf-8') as f:
    lines = f.readlines()

 

 

Supongo que te gusta

Origin blog.csdn.net/CSH__/article/details/130471981
Recomendado
Clasificación