Python 2.7 python基于名称将一个列表中的文件与另一个列表中的文件进行匹配
我正在学习python和编程,需要一些帮助 我编写了一个python脚本,它读取一个文件,获取唯一值,打开第二个文件,并使用这些唯一值进行一些计算(脚本太长,无法上传) 然后,我使用pyqt4创建了一个gui,允许用户通过单击Python 2.7 python基于名称将一个列表中的文件与另一个列表中的文件进行匹配,python-2.7,pyqt4,Python 2.7,Pyqt4,我正在学习python和编程,需要一些帮助 我编写了一个python脚本,它读取一个文件,获取唯一值,打开第二个文件,并使用这些唯一值进行一些计算(脚本太长,无法上传) 然后,我使用pyqt4创建了一个gui,允许用户通过单击QPushButton进行浏览,并将文件路径存储在QLineEdit中,然后在脚本中将我的文件设置为f1=self.lineedit.text()和f2=self.lineedit2.text 然而,一切都很完美,我需要允许用户选择多个文件,并将每个文件与其对应的两个文件进
QPushButton
进行浏览,并将文件路径存储在QLineEdit
中,然后在脚本中将我的文件设置为f1=self.lineedit.text()
和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
中的文件路径打开一个文件,抓取唯一项,从listwidget_2
中的路径找到同名文件使用唯一项执行计算,对列表中的每个文件重复
如果我的文件1和文件2的名称中包含相同的字符串,我如何提取并匹配它们
示例文件名:
filemap02.csv
filemap03.csv
filemap04.csv
示例文件有两个名称:
newmap02.csv
newmap03.csv
newmap04.csv所以我无法真正测试它,因为您没有发布一个工作示例,但类似这样的东西应该可以做到:
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)
希望有帮助