title: Python efficient way to check if very large string contains a substring
body: <p>Python is not my best language, and so I'm not all that good at finding the most efficient solutions to some of my problems. I have a very large string (coming from a 30 MB file) and I need to check if that file contains a smaller substring (this string is only a few dozen characters). The way I am currently doing it is:</p>
  
  <pre><code>if small_string in large_string:
      # logic here
  </code></pre>
  
  <p>But this seems to be very inefficient because it will check every possible sequence of characters in the file. I know that there will only be an exact match on a newline, so would it be better to read the file in as a list and iterate through that list to match?</p>
  
  <p>EDIT: To clear up some confusion on "matching on a newline only", here's an example:</p>
  
  <pre><code>small_string = "This is a line"
  big_string = "This is a line\nThis is another line\nThis is yet another"
  </code></pre>
  
  <p>If I'm not mistake, the in keyword will check all sequences, not just every line.</p>