使用一个临时字符串,找到非字母数字字符,将其两边用空格括起来,然后在末尾拆分lines ="""apple boy 'cat'
dog, egg fin
goat hat ice!"""
out = []
for line in lines.splitlines():
temp = ""
for ch in line:
if ch.isalnum():
temp+= ch
else:
temp += " {} ".format(ch)
out.extend(temp.split())
print(out)
输出:
^{pr2}$
使用文件只需迭代file对象并应用相同的逻辑:with open("text.txt") as f:
out = []
for line in f:
temp = ""
for ch in line:
if ch.isalnum():
temp += ch
else:
temp += " {} ".format(ch)
out.extend(temp.split())
您还可以使用一组标点符号字符,并更改逻辑检查是否有字符出现在集合中:st = set("""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~""")
with open("text.txt") as f:
out = []
for line in f:
temp = ""
for ch in line:
if ch not in st:
temp += ch
else:
temp += " {} ".format(ch)
out.extend(temp.split())