猿问

在目录中搜索特定的Excel文件,并将这些文件中的数据与输入值进行比较

 我得到一份暑期工作的公司具有扩展的测试数据库,该数据库包含每个项目越来越多的子文件夹,其中包括从.jpeg文件到我感兴趣的.xlsx的所有内容。以前对Python有点习惯,所以我决定尝试一下。我想搜索标题中包含“测试电子表格”的exceldocument(例如,“测试电子表格model259”)。我感兴趣的所有文档都以相同的方式构建(权重始终为“ A3”等),看起来有点像这样:


Model:             259 

Lenght:   meters    27

Weight:   kg      2500

Speed:    m/s       25

我希望完成程序的用户能够使用我的脚本将不同测试的结果相互比较。这意味着脚本必须立即查看是否存在同时符合两个条件的x值:


inputlength = x*length of model 259

inputweight = x*weight of model 259

该程序应循环浏览主文件夹中的所有文件。如果模型存在这样的X,我希望程序将其返回到拟合模型列表。x值将是一个变量,每个模型都不同。


结果,我想要一个适合输入的所有文件的列表,它们的scale(x-value)以及可能指向文件的链接。例如:


Model     scale   Link

ModelA    21.1    link_to_fileA

ModelB    0.78    link_to_fileB

脚本 到目前为止,我一直在尝试使用的脚本如下,但是如果您对如何处理任务有其他建议,我会很乐意接受。不要害怕问我对任务的解释不够充分。XLRD已经安装,并且我使用Eclipse作为我的IDE。我一直在尝试使其以多种方式工作,因此我的大部分脚本仅用于测试。


编辑:


#-*- coding: utf-8 -*-

#Accepts norwegian letters


import xlrd, os, fnmatch


folder = 'C:\eclipse\TST-folder'




  def excelfiles(pattern):

    file_list = []

    for root, dirs, files in os.walk(start_dir):

        for filename in files:

            if fnmatch.fnmatch(filename.lower(), pattern):

                if filename.endswith(".xls") or filename.endswith(".xlsx") or filename.endswith(".xlsm"):

                    file_list.append(os.path.join(root, filename))

    return file_list


file_list = excelfiles('*tst*')     # only accept docs hwom title includes tst


print excelfiles() 

返回值后打印excelfiles()时,我只得到一个结果,但是当我将“ return os.path.join(filename)”与“ print os.path.join(filename)”交换时,它显示全部。 xls文件?这是否意味着excelfiles函数的结果未传递?


qq_遁去的一_1
浏览 188回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答