2017-06-17 53 views
0
x = "mama" 
with open("testing.txt") as search: 
    for line in search: 
     line = line.rstrip() 
     if x == line: 
      print line 

tests.txt是一个包含Bohemian Rhapsody歌词的文件。首先,我试图让它做的只是打印一行。我尝试了几种不同类型的设置,可以在下面看到。他们显示为已注释掉,因为我只是评论了我无法工作的所有内容。在某些时候可能还有其他代码与其中的每个代码一起使用,但是这些代码分隔了我尝试过的所有内容。在文本文件打印行中查找字符串到一个新文件Python 2.7

#searchquery = 'mama\n' 

#with open('testing.txt', 'r') as f1: 
# with open('616.txt', 'w') as f2: 
#  for line in f1: 
#   if line == searchquery: 
#   print line 
#   f2.write(line) 
#   f2.write(f1.next()) 
#   f2.write(f2.next()) 
#f1.close() 
#f2.close() 

#  ----------------------------------------------- 

#searchquery = 'mama\n' 
#x=57 
#to open the files for below I did something like: 
#with open("testing.txt", r) as f1: 
# with open("614.txt", w) as f2: 
#while i <=x: 
# if lines[i] == searchquery: 
#   f2.write(Lines[i]) 
#   f2.write(Lines[i+1]) 
#   f2.write(Lines[i+2])    
# else: 
#  i = i+1 
#  

#---------------------- 

我只是想学习一些基础知识。而且我确定我正在寻找某种东西。如果它在#我在这里应付它时不关心正确的缩进。把它当作我在试图使用这个小代码时一直保留的笔记。

回答

0

我假设你的问题是没有打印出来。

问题的第一个代码几乎就在那里,问题是通过检查相等性(==),只有当该行正好是x的值时才会执行打印。您可以使用in运算符代替等于

x = "mama" 
with open("testing.txt") as search: 
    for line in search: 
     line = line.rstrip() 
     if x in line: 
      print line 
+0

它仍然不会打印任何内容。我诚实地认为它只是搜索第一行。 –

+0

如果删除'if'并只是始终打印'line',会发生什么? –

+0

() () () () () () () () () () () () () () () () ( ) () () () () () () () () () () () () () () () () () () () () () () () () () () () ( ) () () () () () ()它继续...只是要完全清楚,有一些行在txt文件中有(),但没有那么多。 –

相关问题