когда-то делал конвертер
# -*- coding:utf-8 -*-
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class TextConvert(QWidget):
def __init__(self,parent=None):
QWidget.__init__(self,parent)
self.fname = ''
self.plain = QPlainTextEdit()
self.plain.setLineWrapMode(0)
self.lbl = QLabel('<b>'+u'Кодировка:'+'</b>')
self.box = QComboBox()
self.btnLoad = QPushButton(u'Открыть')
self.btnSave = QPushButton(u'Сохранить')
grid = QGridLayout(self)
grid.setMargin(1)
grid.addWidget(self.plain,0,0,10,10)
grid.addWidget(self.lbl,10,0,1,1)
grid.addWidget(self.box,10,1,1,3)
grid.addWidget(self.btnLoad,10,8,1,1)
grid.addWidget(self.btnSave,10,9,1,1)
self.load_codecs()
self.box.currentIndexChanged.connect(self.on_index)
self.btnLoad.clicked.connect(self.on_load)
self.btnSave.clicked.connect(self.on_save)
def load_codecs(self):
lst =['System','UTF-8','cp1251','cp866','KOI8-R']
self.box.addItems(lst)
def on_index(self):
self.open_file()
def on_load(self):
tmp = QFileDialog.getOpenFileName(self,"Load", self.fname,"*.*")
if not tmp: return
self.fname = tmp
self.open_file()
def open_file(self):
if not self.fname: return
f = QFile(self.fname)
if not f.open(QIODevice.ReadOnly): return
s = QTextStream(f)
s.setCodec(self.box.currentText().toLocal8Bit())
self.plain.setPlainText(s.readAll())
f.close()
def on_save(self):
tmp = QFileDialog.getSaveFileName(self,"Save", self.fname,"*.*")
if not tmp: return
self.fname = tmp
f = QFile(self.fname)
if not f.open(QIODevice.WriteOnly): return
f.write(self.plain.toPlainText().toLocal8Bit())
f.close()
if __name__=="__main__":
app = QApplication([])
w = TextConvert()
w.setFont(QFont('times',14))
w.move(0,0)
w.resize(800,600)
w.show()
sys.exit(app.exec_())
но для автоматической обработки твоего файла нужно формат файла знать - в нем смесь кода и
данных