2012-05-18 38 views
0

我新的Python 我要的是能够打印文件我有这样的内容与其他文件匹配它打印一个文件的内容和索引位置..通过使用python

土豆泥,淋上这个那个...................... 9.99 $

同样

PRODUCT_NAME,描述.........................价格

当我与含有文件匹配它只Product_names

土豆泥

过去

凯撒沙拉

等 等

第一个文件的内容是不是在一个统一的顺序 所以这就是为什么我在与搜索,匹配和打印方式尝试它

我希望你明白我的问题

这是我曾尝试

 import re 

     content_file = open('/Users/ashishyadav/Downloads/pdfminer-20110515/samples/te.txt',"r") 
     product_list = open('/Users/ashishyadav/Desktop/AQ/te.txt',"r") 
     output = open("output.txt" , "w") 
     line = content_file.read().lower().strip() 
     for prod in product_list: 
     for match in re.finditer(prod.lower().strip(), line): 
     s=match.start() 
     e=match.end() 
     print >>output, match.group(),"\t", 
     print >>output, '%d:%d' % (s, e),"\n", 

我的代码所做的就是与匹配的完整内容文件中的第二个产品列表文件,但给我的product_Names没有描述和价格的只是指数..

我想要从PRODUCT_NAME索引/ SPAN定价..

像土豆泥---- 9.99 $(土豆泥 - [0:58])...,M刚开[0:14]

而且任何方式使用相同的方法

由于打印的说明和价格提前

回答

1
  • 阅读全文“第二档”成一组X.
  • 通过阅读“第一”文件中的行线。
  • 对于每一行,提取逗号前的部分。
  • 如果这部分是在X组中,打印任何需要的东西。

让我知道你是否需要python中的这个。

# Read the whole "second file" into a set X. 
with open('foo') as fp: 
    names = set(fp) 

# Read the "first" file line by line. 
with open('bar') as fp: 
    for line in fp: 

     # For each line, extract the part before the comma. 
     name = line.split(',')[0] 

     # If this part is in the set X, print whatever is desired. 
     if name in names: 
      print line 
+0

嗯这就是我想要做的..我只是不需要在逗号前的部分...当我匹配两个文件时,M已经获得Item_names和它们的索引位置..我想要得到的是完整的内容,即名称,描述,prie与起始索引和产品完整内容的终点..我希望我能够解释.. – ashishashen

+0

请您写一个示例代码或从中获得更好的想法?如何在逗号之前提取零件而不是所需的任何东西? – ashishashen

+0

@ ashish.god5:我仍然无法理解你在这里实现的目标。什么是最终目标? – georg