我正在学习python和编程,并且确实需要一些帮助。
我编写了一个python脚本,它读取一个文件,获取唯一值,打开第二个文件并使用这些唯一值进行一些计算(脚本上传时间太长)
然后我使用pyqt4创建了一个gui,我允许用户通过单击QPushButton
进行浏览并将文件路径存储在QLineEdit
中,然后在我的脚本中将文件设置为f1 = self.lineedit.text()
和{{1 }}
但是,一切都运行得很完美,我需要允许用户选择多个文件并将每个文件与其对应的文件匹配,因为它们彼此依赖
以下是我对小部件功能所做的更新以接受多个文件:
f2 = self.lineedit2.text
我仍然希望使用我编写的代码,但这次使用的是多个文件。
例如。
从def first_file_set(self):
dlg = QFileDialog()
files = dlg.getOpenFileNames()
self.listWidget.addItems(list(files))
def second_file_set(self):
dlg = QFileDialog()
filenames = dlg.getOpenFileNames()
self.listWidget_2.addItems(list(filenames))
def clearF(self):
for item in self.listwidget2.selectedItems():
self.listWidget.clear()
def clearS(self):
for item in self.listwidget.selectedItems():
self.listWidget_2.clear()
def Calculate(self):
#code is too long this is how I am reading files
l1 = []
f1 = self.listWidget.item()
with open(f1,'r') as csvfile:
csvreader = csv.reader(csvfile)
for line in csvreader:
l1.append(list(line))
# more code
l2 = []
f2 = self.listWidget_2.item()[0]
with open(f2,'r') as csvfile:
csvreader = csv.reader(csvfile)
for line in csvreader:
l2.append(list(line))
# more code
中的文件路径打开一个文件,获取唯一项,从listwidget
中的路径中查找具有相同名称的文件,使用唯一项执行计算,对列表中的每个文件重复
如果我的文件一和二在名称中有相同的字符串,我该如何拉和匹配它们?
示例文件名称: filemap02.csv filemap03.csv filemap04.csv
示例文件两个名称: newmap02.csv newmap03.csv newmap04.csv
答案 0 :(得分:0)
所以我没有真正测试它,因为你没有发布一个有效的例子,但是这样的事情应该这样做:
for item in self.listwidget.selectedItems():
#First file
fn1=str(item.text())
#Get string that needs to match
matchStr=fn1.replace("file","")
#Find matching item in second listwidget
fn2=self.listwidget2.findItems(matchStr,QtCore.Qt.MatchExactly)
# Do your calculations
whateverFunc(fn1,fn2)
希望有所帮助。