我想獲取qstringlist中的每個元素,並從列表中獲取原始數據,而不是pyqt將其存儲爲。將QStringList(PyQt)轉換爲正常的python列表
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已經寫好,我需要的是這兩個列表,使其工作。
您的解決方案,以返回名稱工作的文件。第二部分工作在一定程度上,輸出是: [PyQt4.QtCore.QString(u'D:/ Dropbox/Public/Data Processor/src/data - Copy(2).txt'),PyQt4.QtCore。 QString(u'D:/ Dropbox/Public/Data Processor/src/data - Copy(3).txt'),PyQt4.QtCore.QString(u'D:/ Dropbox/Public/Data Processor/src/data - Copy (4).txt'),PyQt4.QtCore.QString(u'D:/ Dropbox/Public/Data Processor/src/data - Copy(5).txt')等等...]如何刪除「PyQt4 .QtCore.QString(u「只是遍歷每個元素並刪除該部分?有沒有更好的方法? – DamianJ 2012-03-06 02:51:00
它與第一個示例相同。只需將生成的QString轉換爲字符串。更新 – jdi 2012-03-06 03:03:37