basicapp1 Pythonで複数テキストファイルをドラッグ&ドロップして何かに変換するひな形
概要
Pythonで複数テキストファイルをドラッグ&ドロップして何かに変換するひな形です。
GUIの為にPyQt5を使っています。
ファイルをドラッグ&ドロップすると、ファイル名に "_convert" を付加したファイルを作成し、同一内容を出力します。
FileProc 関数のところに処理を書けばよいはず。
スクリーンショット
ソースコード
# coding: utf-8 import os,sys,re from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextEdit def FileProc(fileContent): return fileContent class BasicApp1(QWidget): """ """ def __init__(self): super(BasicApp1, 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") file = open(filename) file_content = FileProc(file.read()) outputfile = open(outputfilename,'w') outputfile.write(file_content) outputfile.close() 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 = BasicApp1() w.setWindowTitle('BasicApp1') w.resize(500, 300) w.move(0, 0) sys.exit(app.exec_()) if __name__ == '__main__': main()