python从一个列表中匹配来自另一个列表中基于名称的文件的文件

问题描述:

我一般在学习python和编程,并且确实需要一些帮助。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使用独特的项目进行计算,在列表

重复每个文件如果我的文件一和二将有他们的名字相同的字符串我如何拉和匹配他们?

示例文件一个名字: 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) 

希望有所帮助。

+0

这有助于谢谢你! – MiguelA