Jump to content
gellox

Acelerar leitura e escrita de uma arquivo binario em Python

Recommended Posts

Estou lendo uma arquivo binario gigante (300 GB) e gero uma saida em ascci, gostaria de sabe como posso acelerar o esse processo! 

Segue parte do codigo na leitura e escrita!

 

while cont_traco <= qtd_traco:
    #print('PROCESSANDO:......... '+ str(cont_traco) + '\r'),
        #fonte.write(C2+' '),
        traco.seek(cursor + 71-1); fonte.write (str(1)+' '),  
        traco.seek(cursor + 181-1); fonte.write(str(struct.unpack('>i',traco.read(4))[0] / esc)+' '),
        traco.seek(cursor + 185-1);  fonte.write (str(struct.unpack('>i',traco.read(4))[0] / esc)+' '), 
        traco.seek(cursor + 221-1); fonte.write (str(struct.unpack('>i',traco.read(4))[0])+' '),
        traco.seek(cursor + 225-1); fonte.write (str(struct.unpack('>i',traco.read(4))[0])+'\n')
        cursor = cursor + tam_traco
        cont_traco = cont_traco + 1
    
    traco.close
    fonte.close 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Marcos Vilela Alves
      Bom dia. Iniciei em Python há algumas semanas.  não tive problemas até o momento.
       
      Estou desenvolvendo um projeto Python desktop utilizando qtDesigner e Pyqt5. 
      O conflito que tive não encontrei solução.
       
      Tenho um login, que funciona e abre a "tela principal".
      a tela principal tem vários menus. Meu problema agora aparece.
      Eu criei uma tela para gerenciar permissões, porem quando eu clico para abir a tela, ela abre, porém bloqueada.
       
      eu só consigo mexer nela, depois que fecho a principal. 
      Nao encontrei na internet nenhuma referência.
       
      Segue os códigos.
      Tela Principal
      import sys from principal import Ui_principal from PyQt5 import QtCore, uic from PyQt5.QtWidgets import QMainWindow, QApplication from loginAuth import * from permissoes import Ui_Permissoes class form_principal(QMainWindow,Ui_principal): def __init__(self, parent=None): super().__init__(parent) super().setupUi(self) self.mnuSair.triggered.connect(self.Sair) self.mnuPermissoesAcesso.triggered.connect(self.abrePermissoes) def abrePermissoes(self): from form_permissoes import form_permissoes self.per = form_permissoes() self.per.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # AlwaysOnTop self.per.show() self.per.setEnabled(True) # tentativa de forcar o habilitar ##Form permissoes import sys from principal import Ui_principal from PyQt5 import QtCore, uic from PyQt5.QtWidgets import QFrame, QMainWindow, QApplication, QDialog from loginAuth import * from fpermissoes import Ui_Frame class form_permissoes (QFrame, Ui_Frame): def __init__(self, parent=None): super().__init__(parent) super().setupUi(self)  
      o arquivo que contem os componentes do formulario é o abaixo, que foi criado pelo QtDesiner e convertido usando o commando pyuic5
      from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Frame(object): def setupUi(self, Frame): Frame.setObjectName("Frame") Frame.resize(619, 300) self.groupBox = QtWidgets.QGroupBox(Frame) self.groupBox.setGeometry(QtCore.QRect(10, 10, 591, 261)) self.groupBox.setObjectName("groupBox") self.treeWidget = QtWidgets.QTreeWidget(self.groupBox) self.treeWidget.setGeometry(QtCore.QRect(10, 20, 571, 231)) self.treeWidget.setObjectName("treeWidget") item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) item_1 = QtWidgets.QTreeWidgetItem(item_0) item_2 = QtWidgets.QTreeWidgetItem(item_1) item_3 = QtWidgets.QTreeWidgetItem(item_2) item_3 = QtWidgets.QTreeWidgetItem(item_2) self.retranslateUi(Frame) QtCore.QMetaObject.connectSlotsByName(Frame) def retranslateUi(self, Frame): _translate = QtCore.QCoreApplication.translate Frame.setWindowTitle(_translate("Frame", "Permissões")) self.groupBox.setTitle(_translate("Frame", "Menus")) self.treeWidget.headerItem().setText(0, _translate("Frame", "Menus")) __sortingEnabled = self.treeWidget.isSortingEnabled() self.treeWidget.setSortingEnabled(False) self.treeWidget.topLevelItem(0).setText(0, _translate("Frame", "Arquivo")) self.treeWidget.topLevelItem(0).child(0).setText(0, _translate("Frame", "Cadastro")) self.treeWidget.topLevelItem(0).child(0).child(0).setText(0, _translate("Frame", "Solos")) self.treeWidget.topLevelItem(0).child(0).child(0).child(0).setText(0, _translate("Frame", "PH")) self.treeWidget.topLevelItem(0).child(0).child(0).child(1).setText(0, _translate("Frame", "M.O")) self.treeWidget.setSortingEnabled(__sortingEnabled)  
      Como eu disse, a tela abre, mas como se estivesse bloqueada.

       
       
       
    • By CarolW
      Já peço desculpas antecipadamente se o post for genérico ou não atender os objetivos do fórum, mas gostaria de dicas para quem está iniciando em ciência de dados e Python. Desde cursos, canais, dicas de IDE e ate mesmo outras coisas que sejam importantes estudar além do Python. Muito obrigada
    • By gamesmax2
      Boa tarde,
      Pessoal estou com uma dificuldade no MYSQL, estou querendo obter dados de um cadastro caso ele tenha preenchido todos os Campos, tentei usar o Group by mas não tive sucesso.
       
      Minha tabela e a seguinte:
       
      Nome.              Pedido.            Status
      Daniel.              9955.                 Ok
      Daniel.              9954                  Ok
      Rafael.              9940                  Ok
      Rafael.              9941.                 Aberto
      Rafael.              9942.                 Ok
      Rodrigo.            9961.                 Ok
      Rodrigo.            9962.                 Ok
       
       
      Meu objetivo e puxar os nomes que estão com todos o pedidos relacionado em ok, no caso o Rafael não pode aparece pois ele tem um pedido Aberto, porém não conseguir fazer isso, pessoal peco a ajuda de VCS muito o obrigado.
       
      tentei isso aqui: SELECT nome, pedido, status FROM `cadastros` GROUP BY pedido, nome ORDER BY having status = 'Ok'  
       
    • By dayvidham
      Olá, atualmente faço parte de uma comunidade brasileira que está imersa em um projeto DeFi de um Token que roda na rede BSC.
      Temos um Token chamado SkyRocketSR criado a 31 dias e ja somos mais de 5000 pessoas interessadas no seu sucesso.
      Estamos em busca de programadores, designers e todos que poderem somar à comunidade de alguma forma.
      Alguém gostaria de saber mais do projeto e quem sabe compor a equipe da linha de frente já que somos uma comunidade?
      Obrigado e contamos com você.

      https://skyrocketsr.com/en/

      Aqui há mais sobre nós!
    • By dayvidham
      Olá, atualmente faço parte de uma comunidade brasileira que está imersa em um projeto DeFi de um Token que roda na rede BSC.
      Temos um Token chamado SkyRocketSR criado a 31 dias e ja somos mais de 5000 pessoas interessadas no seu sucesso.
      Estamos em busca de programadores, designers e todos que poderem somar à comunidade de alguma forma.
      Alguém gostaria de saber mais do projeto e quem sabe compor a equipe da linha de frente já que somos uma comunidade?
      Obrigado e contamos com você.

      https://skyrocketsr.com/en/

      Aqui há mais sobre nós!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.