擅长:python、mysql、java
<p>模块化!<strong>模块化!</strong></p>
<p>好吧,不是要编写不同的Python模块,而是要隔离手头的不同任务。</p>
<ol>
<li>查找要搜索的文件。</li>
<li>读取文件并找到文本。</li>
<li>将结果写入单独的文件。</li>
</ol>
<p>每个任务都可以独立解决。一、 e.要列出这些文件,您可能需要筛选<code>os.listdir</code>。</p>
<p>对于步骤2,您是否有1个或1000个文件要搜索并不重要。程序是一样的。您只需遍历在步骤1中找到的每个文件。这表示步骤2可以实现为一个函数,该函数以文件名(以及可能的搜索字符串)作为参数,并返回<code>True</code>或<code>False</code>。</p>
<p>步骤3是步骤1中的每个元素与步骤2的结果的组合。</p>
<p>结果是:</p>
<pre><code>files = [fn for fn in os.listdir('C:/Temp/lamip') if fn.endswith('.txt')]
# perhaps filter `files`
def does_fn_contain_string(filename):
with open('C:/Temp/lamip/' + filename) as blargh:
content = blargh.read()
return 'string1' in content and/or 'string2' in content
with open('results.txt', 'w') as output:
for fn in files:
if does_fn_contain_string(fn):
output.write('Current MW in node is {1}\n'.format(fn[:-4]))
else:
output.write('NOT {1}\n'.format(fn[:-4]))
</code></pre>