使用Python3将.htm转换为.txt

时间:2018-11-13 15:45:28

标签: python

有人知道我是否可以优化下面的代码,尤其是for部分?

我有几个.htm格式的文件,我指定读取文件并生成一个大的.txt文件。但这花了太长时间。有什么方法可以优化此代码?

下面是代码:

##### Importando Bibliotecas
from bs4 import BeautifulSoup
import urllib.request
import os

##### Lendo arquivos na pasta e salvando os nomes em arquivos
os.chdir('C:\\Users\\US365NR\\Desktop\\PROJETO OI\\PEDIDOS_DEBORA\\RAZOES\\PARTE_2')
arquivos = os.listdir()

##### Criando um documento txt unificado e abrindo.
filename = 'UNIFICADO.txt'
file = open(filename, 'w')

##### Criando uma iteracao para ler todos os arquivos na pasta arquivos.
for name in arquivos:
    nfLink = 'file:///C:/Users/US365NR/Desktop/PROJETO%20OI/PEDIDOS_DEBORA/RAZOES//PARTE_2//' + name

    print('TRABALHANDO NO ARQUIVO:')
    print(name)

    ##### Lendo o arquivo htm com o BeautifulSoup
    c=urllib.request.urlopen(nfLink)
    soup=c.read()
    soup = BeautifulSoup(soup)

    print('TERMINOU DE LER BEAUTIFUL SOUP')

    ##### Para ter controle do que esta acontecendo 
    N_LINHAS = 0
    LINHAS = []
    N_TABLE = 0
    TABELAS = []


    tables = soup.findAll('table') ##### Encontrando todas as tabelas
    N_TABLE = len(tables)

    for table in tables: ##### Para cada tabela, quero ler as linhas
        rows = table.findAll('tr')[1:]

        N_LINHAS += len(rows)
        for tr in rows: ##### Encontrando as colunas 
            cols = tr.findAll('td') 
            for i in range(0, len(cols)): #####Salvando as informacoes no arquivo txt
                a = cols[i].text.replace('--*', '').replace('\n','') + '|'

                file.write(a)

            file.write('\n')  ##### Proxima linha

    LINHAS.append(N_LINHAS)
    TABELAS.append(N_TABLE)

    ##### Print's de controle
    print('TOTAL DE LINHAS', LINHAS)
    print('TOTAL DE TABELAS', TABELAS)
    print('FIM DO TRABALHO NO ARQUVO:')
    print(name)
    print('\n')

0 个答案:

没有答案