search大量的python文本文件

我有一个文本文件导出Excel文档。 在列中列出了每个供应商,在下面的行中列出了各自的价格。 最后会列出最低供应商和最低价格。 例:

Project: Name. Supplier A, Supplier B, Supplier C, Lowest Price, Winning Supplier 600, 900, 650, 600, Supplier A 

由于我需要search数百个excel文档,我认为最好是创build每个文本文件并在Python中处理数据。

我已经通过了Python手册,我发现很难得到任何结果。 我想要的最终结果是能够处理来自单个文件夹的大量文件。 我的目标是能够列出每个供应商,并search他们是否在每个项目上取得成功,以及如果他们没有多less差别,以美元计算,或者他们的价格与获胜供应商的比例。

任何人都可以从哪里开始build立这个协助?

Greggy D.

我可能会将供应商数据封装在一个类中:

 class Supplier(object): def __init__(self): self.projects = [] #winning projects self.bids = [] #how much this supplier bid, winning bid. 

然后我会分别parsing每个数据文件:

 from collections import defaultdict def parse_datafile(fname,output=None): if output is None: output = defaultdict(Supplier) with open(fname,r) as f: project = f.readline().split(':')[1].strip() suppliers = map(str.strip,f.readline().split(',')[:-2]) bids = map(str.strip,f.readline().split(',')) winner = bids[-1] win_amt = bids[-2] for s,b in zip(suppliers,bids): output[s].bids.append(int(b),int(win_amt)) output[winner].projects.append(project) return output 

现在我们可以build立我们的字典:

  import glob from Collections import defaultdict d = defaultdict(Supplier) for fname in glob.iglob('*.txt'): d = parse_datafile(fname,output=d) 

您可以通过以下方式获取该供应商的信息:

 print d['supplier A'].projects print [ float(bid)/winbid for bid,winbid in d['supplier A'].bids ] 

等等

当然,有些库可以直接在python中parsing.xls文件,这可能比我的手动parsing函数更适合。 但是我仍然认为,包含所有相关信息的类的defaultdict可能是你最好的select(不pipe你如何parsing数据)。

我也错过了关于这个问题的详细信息。 但对我来说,总的来说听起来好像你最好直接使用xls文件,因为它们似乎包含了相当多的语义。 看看这里: http ://www.python-excel.org/,xlrd真的很棒,易于使用。