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

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

Table of Contents

概要

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

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

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

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

スクリーンショット

PythonBasicApp1.png

ソースコード

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

参考

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