예제 #1
0
파일: als.py 프로젝트: deufrai/doctest
    def on_created(self, event):
        if event.event_type == 'created':
            file_is_incomplete = True
            last_file_size = -1
            image_path = event.src_path
            _LOGGER.debug(
                f"New image file detected : {image_path}. Waiting untill file is fully written to disk..."
            )

            while file_is_incomplete:
                info = QFileInfo(image_path)
                size = info.size()
                _LOGGER.debug(f"File {image_path}'s size = {size}")
                if size == last_file_size:
                    file_is_incomplete = False
                    _LOGGER.debug(
                        f"File {image_path} has been fully written to disk")
                last_file_size = size
                self.msleep(DEFAULT_SCAN_SIZE_RETRY_PERIOD_MS)

            _LOGGER.info(f"New image ready to be processed : {image_path}")
            _LOGGER.debug(
                f"'created' signal emitted from MyEventHandler.on_created. Image path = {image_path}"
            )
            self.created_signal.emit(image_path)
예제 #2
0
    def startSearch(self, query):
        print("search started..", query)
        filters = QDir.Files
        nameFilters = ["*.cpp"]
        iterator = QDirIterator("/home/alexanderb", nameFilters, filters,
                                QDirIterator.Subdirectories)
        while (iterator.hasNext()):
            filePath = iterator.next()
            fileInfo = QFileInfo(filePath)
            currentFile = QFile(filePath)
            currentFile.open(QFile.ReadOnly | QFile.Text)
            fileContents = currentFile.readAll().data().decode('utf8',
                                                               errors='ignore')
            if (fileContents.find(query) != -1):
                qtwItem = QTreeWidgetItem()
                qtwItem.setText(0, fileInfo.fileName())
                qtwItem.setText(1, fileInfo.suffix())
                qtwItem.setText(2, str(fileInfo.size() / 1024))
                qtwItem.setText(3,
                                fileInfo.lastModified().toString("MM/dd/yyyy"))
                qtwItem.setText(4, fileInfo.created().toString("MM/dd/yyyy"))
                qtwItem.setText(5, str("...here is the content..."))
                qtwItem.setText(6, filePath)
                self.qtwItems.append(qtwItem)

                self.match_found.emit(qtwItem)

        self.finished.emit()
예제 #3
0
def is_img_so_big(path):
    '''判断图片是否大于2G'''
    file_info = QFileInfo(path)
    file_g_size = file_info.size() / 1024 / 1024 / 1024
    if file_g_size >= 2:  # 大于2G
        return True
    else:
        return False
 def init_ui(self):
     self.setWindowTitle(self.title)
     self.setGeometry(self.left, self.top, self.width, self.height)
     file_name = self.save_file_name_dialog()
     info = QFileInfo(file_name)
     self.file_size = info.size()
     self.show()
     return file_name
예제 #5
0
 def GetFile(self, typeOfFile, suff):
     options = QFileDialog.Options()
     fileName, _ = QFileDialog.getOpenFileName(
         self,
         "Open {} File".format(typeOfFile),
         "",
         "{}".format(suff),
         options=options)
     if fileName:
         if typeOfFile == "any":
             myCipher.fileToBeSigned = fileName
             f = QFileInfo(fileName)
             n = f.fileName()
             file_info = "Informations about the file:\n \n"
             file_info += "Name: " + n + "\n"
             p = f.filePath()
             file_info += "Path: " + p + "\n"
             suf = f.suffix()
             file_info += "Suffix: " + suf + "\n"
             size = f.size()
             file_info += "Size (in bytes): " + str(size) + "\n"
             lastModify = f.lastModified().toPyDateTime()
             file_info += "Date of last change: " + str(lastModify)
             self.fileInfo.setText(file_info)
         elif typeOfFile == "Signed":
             myCipher.userFile = fileName
         elif typeOfFile == "Private key":
             myCipher.privPath = fileName
             with open(fileName, "r") as f:
                 f.seek(4)
                 base64Text = f.readline()
                 decodedBase64D = self.decodeFromBase64(base64Text)
                 myCipher.d = int(decodedBase64D, 10)
                 base64Text2 = f.readline()
                 decodedBase64N = self.decodeFromBase64(base64Text2)
                 myCipher.n = int(decodedBase64N, 10)
         elif typeOfFile == "Public key":
             myCipher.pubPath = fileName
             with open(fileName, "r") as f:
                 f.seek(4)
                 base64Text = f.readline()
                 decodedBase64E = self.decodeFromBase64(base64Text)
                 myCipher.e = int(decodedBase64E, 10)
                 base64Text2 = f.readline()
                 decodedBase64N = self.decodeFromBase64(base64Text2)
                 myCipher.n = int(decodedBase64N, 10)
         elif typeOfFile == "Zip":
             myCipher.zipPath = fileName
             with zipfile.ZipFile(fileName, "r") as z:
                 z.extractall("Extracted_files")
         elif typeOfFile == "Sign":
             myCipher.fileToBeVerified = fileName
             with open(fileName, "r") as f:
                 f.seek(13)
                 base64Text = f.readline()
                 decodedBase64 = self.decodeFromBase64(base64Text)
                 myCipher.toVerifyMessage = list(decodedBase64)
예제 #6
0
def is_img_big(path):
    '''判断一副图像是否是大图 分界 <=200M'''

    file_info = QFileInfo(path)
    file_m_size = file_info.size() / 1024 / 1024
    if file_m_size > 200:  # 大于2G
        return True
    else:
        return False
    def start_search(self, query, search_directory):
        self.keep_searching = True
        print("search started..", query)
        filters = QDir.Files

        nameFilters = [
            "*.cpp", "*.txt", "*.pdf", "*.doc", "*.docx", "*.xlsx", "*.xls",
            "*.ppt", "*.pptx"
        ]

        iterator = QDirIterator(search_directory, nameFilters, filters,
                                QDirIterator.Subdirectories)
        while (iterator.hasNext()):
            QApplication.processEvents()
            if (self.keep_searching):
                file_path = iterator.next()
                if (os.access(file_path, os.R_OK)):
                    try:
                        file_info = QFileInfo(file_path)
                        file_contents = parser.from_file(file_path)
                    except:
                        continue

                    if (file_contents['status'] == 200
                            and 'content' in file_contents.keys()
                            and file_contents['content'] is not None):
                        found_index = file_contents['content'].find(query)
                        if (found_index != -1):
                            snippet = file_contents['content'].strip().replace(
                                '\n', ' ').replace('\r', '')
                            snippet_index = snippet.find(query)

                            qtw_item = QTreeWidgetItem()
                            qtw_item.setText(0, file_info.fileName())
                            qtw_item.setText(1, file_info.suffix())
                            qtw_item.setText(2, str(file_info.size() / 1024))
                            qtw_item.setText(
                                3,
                                file_info.lastModified().toString(
                                    "MM/dd/yyyy"))
                            qtw_item.setText(
                                4,
                                file_info.created().toString("MM/dd/yyyy"))
                            qtw_item.setText(
                                5,
                                str(snippet)[snippet_index - 5:snippet_index +
                                             10])
                            qtw_item.setText(6, file_path)
                            self.qtw_items.append(qtw_item)

                            self.match_found.emit(qtw_item)
        self.finished.emit()
예제 #8
0
 def convert_to_digital_str(self):
     file_path = QFileDialog.getOpenFileName()[0]
     if file_path != "":
         username = self.username_label.text()
         file_info = QFileInfo(file_path)
         file_size = file_info.size()
         file_type = Path(file_path).suffix
         self.file_name_field.setText(file_path)
         dynamo = DynamoModule()
         self.item_id = dynamo.create_item(username, str(time.time()),
                                           file_type, str(file_size))
         digital_string = OCR.handwritten_to_string(file_path)
         self.uploaded_text_field.setText(digital_string)
예제 #9
0
    def ImageSelectedEvent(self, path):
        def HumanSize(size, decimal_places):
            for unit in ['', 'KB', 'MB', 'GB', 'TB']:
                if size < 1024.0:
                    break
                size /= 1024.0
            return f"{size:.{decimal_places}f} {unit}"

        finfo = QFileInfo(path)
        self.imagePathBox.setText(finfo.absoluteFilePath())
        self.imageFileSizeBox.setText(HumanSize(finfo.size(), 3))
        date = finfo.lastModified().toString('yyyy-dd-MM hh:mm:ss')
        self.imageModifyTimeBox.setText(date)
        self.currentSelectPic = finfo
예제 #10
0
    def complete(self) -> None:
        info = QFileInfo(self.finalFilename)
        mbox = QMessageBox(windowTitle='Success',
                           windowIcon=self.parent.windowIcon(),
                           minimumWidth=500,
                           iconPixmap=self.successIcon.pixmap(48, 49),
                           textFormat=Qt.RichText)
        mbox.setText(
            '''
<style>
    table.info { margin:8px; padding:4px 15px; }
    td.label { font-weight:bold; font-size:9pt; text-align:right; background-color:#444; color:#FFF; }
    td.value { background-color:#FFF !important; font-size:10pt; }
</style>
<p>Your video was successfully created.</p>
<p align="center">
    <table class="info" cellpadding="6" cellspacing="0">
        <tr>
            <td class="label"><b>Filename</b></td>
            <td class="value" nowrap>%s</td>
        </tr>
        <tr>
            <td class="label"><b>Size</b></td>
            <td class="value">%s</td>
        </tr>
        <tr>
            <td class="label"><b>Runtime</b></td>
            <td class="value">%s</td>
        </tr>
    </table>
</p>
<p>How would you like to proceed?</p>''' %
            (QDir.toNativeSeparators(
                self.finalFilename), self.sizeof_fmt(int(info.size())),
             self.deltaToQTime(self.totalRuntime).toString(self.timeformat)))
        play = mbox.addButton('Play', QMessageBox.AcceptRole)
        play.setIcon(self.completePlayIcon)
        play.clicked.connect(self.openResult)
        fileman = mbox.addButton('Open', QMessageBox.AcceptRole)
        fileman.setIcon(self.completeOpenIcon)
        fileman.clicked.connect(self.openFolder)
        end = mbox.addButton('Exit', QMessageBox.AcceptRole)
        end.setIcon(self.completeExitIcon)
        end.clicked.connect(self.close)
        new = mbox.addButton('Restart', QMessageBox.AcceptRole)
        new.setIcon(self.completeRestartIcon)
        new.clicked.connect(self.startNew)
        mbox.setDefaultButton(new)
        mbox.setEscapeButton(new)
        mbox.exec_()
예제 #11
0
def get_path_datasize(path):
    file_info = QFileInfo(path)
    data_size = 0

    if file_info.isDir():
        data_size, files_count = get_directory_size(
            file_info.absoluteFilePath())
        # logger.info("path (folder) %s %u elements size now=%u (%s)",
        #            file_info.absoluteFilePath(), files_count, data_size, pretty_bytes(data_size))
    else:
        # logger.info("path (file) %s size=%u", file_info.path(), file_info.size())
        data_size = file_info.size()
        files_count = 1

    return data_size, files_count
예제 #12
0
 def complete(self) -> None:
     info = QFileInfo(self.finalFilename)
     mbox = QMessageBox(icon=self.thumbsupIcon,
                        windowTitle='VIDCUTTING COMPLETE',
                        minimumWidth=500,
                        textFormat=Qt.RichText)
     mbox.setText(
         '''
 <style>
     table.info { margin:6px; padding:4px 15px; }
     td.label { font-weight:bold; font-size:10.5pt; text-align:right; }
     td.value { font-size:10.5pt; }
 </style>
 <table class="info" cellpadding="4" cellspacing="0">
     <tr>
         <td class="label"><b>File:</b></td>
         <td class="value" nowrap>%s</td>
     </tr>
     <tr>
         <td class="label"><b>Size:</b></td>
         <td class="value">%s</td>
     </tr>
     <tr>
         <td class="label"><b>Length:</b></td>
         <td class="value">%s</td>
     </tr>
 </table><br/>''' %
         (QDir.toNativeSeparators(
             self.finalFilename), self.sizeof_fmt(int(info.size())),
          self.deltaToQTime(self.totalRuntime).toString(self.timeformat)))
     play = mbox.addButton('Play', QMessageBox.AcceptRole)
     play.setIcon(self.completePlayIcon)
     play.clicked.connect(self.openResult)
     fileman = mbox.addButton('Open', QMessageBox.AcceptRole)
     fileman.setIcon(self.completeOpenIcon)
     fileman.clicked.connect(self.openFolder)
     end = mbox.addButton('Exit', QMessageBox.AcceptRole)
     end.setIcon(self.completeExitIcon)
     end.clicked.connect(self.close)
     new = mbox.addButton('Restart', QMessageBox.AcceptRole)
     new.setIcon(self.completeRestartIcon)
     new.clicked.connect(self.parent.restart)
     mbox.setDefaultButton(new)
     mbox.setEscapeButton(new)
     mbox.adjustSize()
     mbox.exec_()
예제 #13
0
 def actualizarImagen(self, event):
     from PyQt5.QtCore import QByteArray, QFileInfo
     from PyQt5.QtWidgets import QFileDialog, QMessageBox
     fileName = QFileDialog.getOpenFileName(
         self, "Abrir", filter="Images (*.png *.jpg)"
     )  # options=QtWidgets.QFileDialog.DontUseNativeDialog
     if all(fileName):
         info = QFileInfo(fileName[0])
         if info.size() > 32000:
             QMessageBox.warning(self, "¡Error!",
                                 "No se permite archivos de mas de 32kb")
             return
         str_base64 = Logica.imageToByteArray(fileName[0])
         if str_base64 is None:
             QMessageBox.warning(self, "¡Error!",
                                 "Fallo al cargar la imagen")
             return
         self.lblImagen.setPixmap(Logica.byteArrayToImage(str_base64))
         self.dispositivo.image = str_base64
예제 #14
0
    def on_created(self, event):
        if event.event_type == 'created':
            file_is_incomplete = True
            last_file_size = -1
            image_path = event.src_path
            _LOGGER.debug(
                f"File creation detected : {image_path}. Waiting until file is complete and readable ..."
            )

            while file_is_incomplete:
                info = QFileInfo(image_path)
                size = info.size()
                _LOGGER.debug(f"File {image_path}'s size = {size}")
                if size == last_file_size:
                    file_is_incomplete = False
                    _LOGGER.debug(f"File {image_path} is ready to be read")
                last_file_size = size
                time.sleep(_DEFAULT_SCAN_FILE_SIZE_RETRY_PERIOD_IN_SEC)

            self.broadcast_image(read_disk_image(Path(image_path)))
예제 #15
0
    def addFilesToExplorer(self,
                           fileName,
                           fileType,
                           scaler,
                           extensionTag,
                           isVideo=True):
        if fileName:
            info = QFileInfo(fileName)
            if info.baseName() == self.importedVideo and isVideo:
                QMessageBox.critical(self,
                                     "Error",
                                     "Video already exist",
                                     buttons=QMessageBox.Ok)
            elif info.baseName() == self.importedCSV and not isVideo:
                QMessageBox.critical(self,
                                     "Error",
                                     "CSV file already exist",
                                     buttons=QMessageBox.Ok)
            else:
                if (isVideo):
                    self.removeItemFromTable("video")
                    self.importedVideoPath = QUrl.fromLocalFile(fileName)
                    self.importedVideo = info.baseName()
                    cap = cv2.VideoCapture(r'{}'.format(
                        self.importedVideoPath.toString()))
                    fps = cap.get(cv2.CAP_PROP_FPS
                                  )  # OpenCV2 version 2 used "CV_CAP_PROP_FPS"
                    frame_count = cap.get(cv2.CAP_PROP_FRAME_COUNT)
                    self.durationChanged(int(frame_count / fps))
                    self.statusBar().showMessage('Status: Video/Image added')
                else:
                    self.removeItemFromTable("csv")
                    self.importedCSVPath = info.absoluteFilePath()
                    self.readCSV(info.absoluteFilePath(), info.baseName())
                    self.statusBar().showMessage('Status: CSV File added')

                size = str(info.size() / scaler) + extensionTag
                last_modified = info.lastModified().toString()[4:10]
                self.addItemToTable(
                    self.explorerView,
                    [info.baseName(), size, fileType, last_modified])
예제 #16
0
    def set_data(self, _file):
        ff = QFileInfo(_file)
        self.short_title(ff.fileName())
        self.ui.lsize.setText(naturalsize(ff.size(), format="%.1f "))

        if ff.isDir():
            self.ui.litems.show()
            self.ui.label_3.show()
            self.ui.litems.setText(str(len(glob(_file + "/*"))))
        else:
            self.ui.label_3.hide()
            self.ui.litems.hide()

        self.ui.lcreated.setText(ff.created().toString())
        self.ui.lmodified.setText(ff.lastModified().toString())
        self.ui.laccessed.setText(ff.lastRead().toString())
        self.ui.luser.setText(ff.owner())
        self.ui.luid.setText(str(ff.ownerId()))
        self.ui.lgroup.setText(str(ff.group()))
        self.ui.lgid.setText(str(ff.groupId()))
        self.ui.lpath.setText(ff.path())
예제 #17
0
    def updateDetails(self, path):
        """
        Updates the elements in the right menu based on arguments
        :param path: path of the file
        :return: nothing
        """
        info = QFileInfo(path)

        bullet = html.unescape("&#8226;")

        value: str = bullet + " File not saved!"
        # Get the file info and update all the respective fields
        if info is not None and path is not None:
            value = ""
            i_s = "<i>"
            i_e = "</i>"
            br = "<br>"

            size = info.size()
            units = ['Bytes', 'KB', 'MB', 'GB']
            unit = 0
            while len(str(round(size, 0))) > 3:
                size /= 1000
                unit += 1

            value += bullet + " Name: " + i_s + info.fileName() + i_e + br
            value += bullet + " Path: " + i_s + info.path() + i_e + br
            value += bullet + " Size: " + i_s + str(size) + " " + units[unit] + i_e + br
            value += bullet + " Owner: " + i_s + (str(info.owner())) + i_e + br
            value += bullet + " Viewed: " + i_s + \
                     (info.lastRead().toString(self.format_time)) + i_e + br
            value += bullet + " Modified: " + i_s + \
                     (info.lastModified().toString(self.format_time)) + i_e

        self.col_metadata_contents.setText(value)
        # Update the summary from file
        self.updateSummary()
예제 #18
0
 def on_btnInfo_size_clicked(self):
     self.__showBtnInfo(self.sender())
     fileInfo = QFileInfo(self.ui.editFile.text())
     btCount = fileInfo.size()  #字节数
     text = "%d Bytes" % btCount
     self.ui.textEdit.appendPlainText(text + "\n")
예제 #19
0
 def get_filesize(self, path):
     if path.startswith('file:///'):
         path = path.strip('file:///')
     file = QFileInfo(QFile(path))
     self._filesize = file.size()
     return self._filesize