最終更新日: 2019-07-10 水 22:43
ホーム | 文書トップ | 目次

basicapp1 Pythonで複数テキストファイルをドラッグ&ドロップして何かに変換するひな形

Table of Contents

概要

Pythonで複数テキストファイルをドラッグ&ドロップして何かに変換するひな形です。

GUIの為にPyQt5を使っています。

ファイルをドラッグ&ドロップすると、ファイル名に "_convert" を付加したファイルを作成し、同一内容を出力します。

FileProc 関数のところに処理を書けばよいはず。

スクリーンショット

PythonBasicApp1.png

ソースコード

# 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()

参考

ホーム | 文書トップ | 目次
Created by Emacs 26.2 (Org mode 9.1.9)