basicapp2 Pythonで複数テキストファイルをドラッグ&ドロップして何かに変換するひな形 その2
Table of Contents
概要
Pythonで複数テキストファイルをドラッグ&ドロップして何かに変換するひな形です。
GUIの為にPyQt5を使っています。
ファイルをドラッグ&ドロップすると、ファイル名に "_convert" を付加したファイルを作成し、同一内容を出力します。
FileProc 関数のところに処理を書けばよいはず。
スクリーンショット
ソースコード
basicapp2.py
# coding: utf-8 import os,sys,re import fileproc from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextEdit class BasicApp2(QWidget): """ """ def __init__(self): super(BasicApp2, self).__init__() self.setAcceptDrops(True) self.initUi() def fileProc( self, filename ): self.textEdit.append("inputfile: " + filename) name, ext = os.path.splitext( os.path.basename(filename) ) outputfilename = os.path.join( os.path.dirname(filename), name + "_convert" + ext ) self.textEdit.append("outputfile: " + outputfilename) self.textEdit.append("\n") fileproc.FileProc(filename,outputfilename) def dragEnterEvent( self, event ): if event.mimeData().hasUrls(): event.accept() else: event.ignore() def dropEvent( self, event ): files = [u.toLocalFile() for u in event.mimeData().urls()] for f in files: self.fileProc(f) def doClear(self, value): self.textEdit.clear() def initUi(self): self.btnClear = QPushButton(u'clear',self) self.btnClear.move(200,220) self.btnClear.clicked.connect(self.doClear) self.textEdit = QTextEdit(self) self.textEdit.resize(500,200) self.textEdit.setReadOnly(1) self.show() def main(): """ """ app = QApplication(sys.argv) w = BasicApp2() w.setWindowTitle('BasicApp2') w.resize(500, 300) w.move(0, 0) sys.exit(app.exec_()) if __name__ == '__main__': main()
fileproc.py
def FileProc(inputFileName,outputFileName): file = open(inputFileName) file_content = file.read() outputfile = open(outputFileName,'w') outputfile.write(file_content) outputfile.close()