<p>我不得不对我的答案做一些修改。您可以尝试使用这两行获得相同的结果。假设每行至少有2个字符</p>
<pre><code>with open("xyz.txt", "r") as f, open("out.txt", 'w') as f2:
for x in f:
if x[3] == ':': f2.write(x)
</code></pre>
<p>下面的代码将解决这个假设。无论每行的长度如何,它都应该能够读取文件</p>
<pre><code>import re
with open("xyz.txt", "r") as f, open("out.txt", 'w') as f2:
for x in f:
if re.search('^...:',x): f2.write(x)
</code></pre>
<p>reg表达式将检查x的值是否以任何3个字符开头,后跟冒号(:)。如果是,则该行已准备好写入文件</p>
<p>我在xyz.txt中的输入文件有以下记录</p>
<pre><code>hsh:222
shhhshshs:2294
sjasda:2324
s_s:223
aaa:111
asdasd:1111
a:
</code></pre>
<p>out.txt中的outut文件具有以下记录</p>
<pre><code>hsh:222
s_s:223
aaa:111
</code></pre>
<p>如果要检查以下模式中的任何字符串:
<code>:123</code>
<code>a:123</code>
<code>aa:123</code>
<code>aaa:123</code></p>
<p>如果<code>a</code>可以是任何字符,则可以按如下方式更改代码:</p>
<pre><code>with open("xyz.txt", "r") as f, open("out.txt", 'w') as f2:
for x in f:
if ':' in x[:3] : f2.write(x)
</code></pre>
<p>在这里,它将检查前4个位置中的<code>:</code></p>
<p>您可以使用正则表达式编写,如下所示:</p>
<pre><code>import re
with open("xyz.txt", "r") as f, open("out.txt", 'w') as f2:
for x in f:
if re.search('^.{0,3}:',x): f2.write(x)
</code></pre>
<p>如果输入文件如下所示:</p>
<pre><code>hsh:222
shhhshshs:2294
sjasda:2324
s_s:223
aaa:111
asdasd:1111
a:
:1
</code></pre>
<p>输出结果如下:</p>
<pre><code>hsh:222
s_s:223
aaa:111
a:
:1
</code></pre>