2012-08-04 57 views
0

文本文件中找到重复的字符串包含后在文件中指定位置使用python

paragraph 1: 
01 internet 1 
02 intranet 2 
paragraph 2: 
03 internet 1 
04 intranet 2 
paragraph 3: 
05 internet 1 
06 intranet 2 
paragraph 4: 
07 internet 1 
08 intranet 2 

我想使用Python找到企业内部网2第2款。

这是我到目前为止有:

file = open("c:\file.txt", "r").readlines() 
var = raw_input("enter the value") 
var1 = "paragraph 1:" 
for line in file: 
    if re.search(var1, line,re.IGNORECASE): 
    print re.search(var, line,re.IGNORECASE) 
    print "found", line 
    count=line for line in file: 
     if re.search(var, line,re.IGNORECASE): 
     print "value=", line 
+2

你到目前为止尝试过什么?而且,“指定位置之后”的标准究竟是什么? – 2012-08-04 11:28:20

+0

确定 文件=打开( “C:\ file.txt的”, “R”).readlines() VAR =的raw_input( “输入值”) VAR1 = “1段:” 用于文件行 : 如果re.search(VAR1,线,re.IGNORECASE): 打印re.search(VAR,线,re.IGNORECASE) 打印 “发现”,行 数=在文件逐行 : 如果重。搜索(var,line,re.IGNORECASE): print“value =”,line – user1575730 2012-08-04 11:33:40

+0

当你说'在第2段中找到intranet 2',你是什么意思?你想找出文件中位置在哪里?那个位置的文字是什么?如果“内联网2”只是一个标记,那么该行还有什么?如果'intranet 2'完全在文件的那个部分?它是否必须位于“第2段”部分,或者稍后的部分是否也可以正常工作? – LJNielsenDk 2012-08-04 11:33:41

回答

1

假设你只需要在指定的部分搜索这应该工作:

def find(file, paragrapgh_number, search_string): 
    paragraph = 'paragraph {}'.format(paragrapgh_number) 
    for line in file: 
     if line.find(paragraph) >= 0: 
      break 
    for line in file: 
     if line.find(search_string) >=0: 
      print('Found:', line) 
     elif line.find('paragraph') >= 0: 
      print('Not found') 
      return 

with open("./test.txt", "r") as file: 
    find(file, 2, 'intranet 2') 

>>>Found: 04 intranet 2 

如果在指定的部分没有找到字符串它会显示

>>>Not Found 
+0

非常棒的我的代码作品感谢:-) – user1575730 2012-08-04 12:14:55

相关问题