Python 2.7 python基于名称将一个列表中的文件与另一个列表中的文件进行匹配

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 然而,一切都很完美,我需要允许用户选择多个文件,并将每个文件与其对应的两个文件进

我正在学习python和编程,需要一些帮助

我编写了一个python脚本,它读取一个文件,获取唯一值,打开第二个文件,并使用这些唯一值进行一些计算(脚本太长,无法上传) 然后,我使用pyqt4创建了一个gui,允许用户通过单击
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)
希望有帮助