我正在处理500GB的数据,以仅查找具有字符的行。 你能给我推荐一种高效/快捷的方法吗?
Data is like:
%^^%^^%^^%
This is a valid
*%^%^ Valid
This is not a valid one
输出应为:
Data is like:
This is a valid
*%^%^ Valid
This is not a valid one
我正在尝试: isalpha() 问题是它将消除线 *%^%^有效
计算一些代码也无法正常工作
if line.isalpha()=='True':
print(line)
这不起作用...
我可以使用正则表达式,但可以读一些会减慢它的速度吗?
答案 0 :(得分:0)
使用正则表达式,例如:
>>> import re
>>>
>>> pattern = re.compile(r'\A[%|\^]*$')
>>>
>>> pattern.match('%^ Text') # no match
>>> pattern.match('%^^%^') # match
<re.Match object; span=(0, 5), match='%^^%^'>
答案 1 :(得分:0)
您未正确使用isalpha,当字符串中的所有字符均为字母时,它将返回True
。
您可以尝试使用any
和map
来确保该行中至少有一个字符是字母。
txt = """
Data is like:
%^^%^^%^^%
This is a valid
*%^%^ Valid
This is not a valid one
"""
for line in txt.split("\n"):
if any(map(str.isalpha, line)):
print(line)
打印:
Data is like:
This is a valid
*%^%^ Valid
This is not a valid one