qstringlist内の各要素を取得し、pyqtが保存しているものではなく、リストから生データを取得したいと考えています。
def find(self):
self.foundFileList.setRowCount(0)
fileName = self.inputFileName.currentText()
path = self.directoryPath.currentText()
maxSize = Decimal(self.maxFileSize.value())
i = 0
self.updateComboBox(self.inputFileName)
self.updateComboBox(self.directoryPath)
self.currentDir = QtCore.QDir(path)
if not fileName:
fileName = "*"
allFiles = self.currentDir.entryList([fileName],
QtCore.QDir.Files | QtCore.QDir.NoSymLinks, QtCore.QDir.Size)
files = self.currentDir.entryList([fileName],
QtCore.QDir.Files | QtCore.QDir.NoSymLinks, QtCore.QDir.Size)
for fn in allFiles:
file = QtCore.QFile(self.currentDir.absoluteFilePath(fn))
size = Decimal((QtCore.QFileInfo(file).size() + 1023) / 1024)
if size > maxSize:
files.removeAt(i)
i += 1
self.showFiles(files)
def showFiles(self, files):
##Clean house before new round of files is displayed
del nameList[0:len(nameList)]
del fileList[0:len(fileList)]
i = 0
for fn in files:
nameList.append(fn)
file = QtCore.QFile(self.currentDir.absoluteFilePath(fn))
fileList.append(file)
size = QtCore.QFileInfo(file).size()
##Some other stuff below here but it's irrelevant
print nameList
print "_____________________________"
print fileList
これから得られる出力は次のとおりです。
> [PyQt4.QtCore.QString(u'data - Copy (2).txt'),
> PyQt4.QtCore.QString(u'data - Copy (3).txt'),
> PyQt4.QtCore.QString(u'data - Copy (4).txt'),
> PyQt4.QtCore.QString(u'data - Copy (5).txt'),
> PyQt4.QtCore.QString(u'data - Copy (6).txt'),
> PyQt4.QtCore.QString(u'data - Copy.txt'),
> PyQt4.QtCore.QString(u'data.txt')]
> _____________________________
> [<PyQt4.QtCore.QFile object at 0x000000000B28C400>,
> <PyQt4.QtCore.QFile object at
> 0x000000000B28C598>, <PyQt4.QtCore.QFile object at
> 0x000000000B28C730>, <PyQt4.QtCore.QFile object at
> 0x000000000B28C8C8>, <PyQt4.QtCore.QFile object at
> 0x000000000B28CA60>, <PyQt4.QtCore.QFile object at
> 0x000000000B28CBF8>, <PyQt4.QtCore.QFile object at
> 0x000000000B28CD90>]
ご覧のとおり、私は QString 値を取得するだけで、メモリの場所のように見えるものは、実際の文字列自体と実際のディレクトリ値を文字列として python リストに格納する必要があります。私がこれを行う主な理由は、matplotlib と scipy のスクリプトが既に作成されており、それを機能させるために必要なのはこれら 2 つのリストだけだからです。