我有一个100行的文本文件,如下所示:
hsh:222
shhhshshs:2294
sjasda:2324
s_s:223
aaa:111
asdasd:1111
我想删除冒号前超过3个字符的所有行,以便输出为:
hsh:222
s_s:223
aaa:111
我该怎么做?我不知道如何在冒号前向左读。我假设是这样的:
for x in f:
newline = x.strip()+.split(':')
if len(newline.rstrip()) >= 3:
f2.write(newline)
Tags:
我会利用列表理解进行过滤。您可以使用
str
类的find()
方法来查找每个单词中冒号的索引,然后将单词从开头分割到冒号索引在我看来,您希望将
output
列表的内容写入一个文件(f2
)。您可以按如下方式执行此操作:我不得不对我的答案做一些修改。您可以尝试使用这两行获得相同的结果。假设每行至少有2个字符
下面的代码将解决这个假设。无论每行的长度如何,它都应该能够读取文件
reg表达式将检查x的值是否以任何3个字符开头,后跟冒号(:)。如果是,则该行已准备好写入文件
我在xyz.txt中的输入文件有以下记录
out.txt中的outut文件具有以下记录
如果要检查以下模式中的任何字符串:
:123
a:123
aa:123
aaa:123
如果
a
可以是任何字符,则可以按如下方式更改代码:在这里,它将检查前4个位置中的
:
您可以使用正则表达式编写,如下所示:
如果输入文件如下所示:
输出结果如下:
你快到了。您可以直接对方法的结果调用方法:
这将返回两个元素的列表。要获取列表的第一个元素,请为其编制索引:
或作为一个班轮:
那就照常进行吧。请记住,您应该将
x
写入输出if len(first) <= 3
,而不是newline
或先写入相关问题 更多 >
编程相关推荐