我有一个.sav文件,其中包含地理坐标和地址,看起来像这样(就像整个文本文件已经充满它并且没有换行符)
"*g ! –Ѓ›M& 1дj шTњM. 1д‚ »Ѓ›M2 1dѓ ЅЃ›M> 1dШ ОЃ›M? 1ди аЃ›M@ 1й гЃ›Mu 1д‚ є 0000008e92ec333e003e19ec2222 1 1 1 1 1 C I T Y N A M E *"
所以我想制作一个删除特殊字符的小脚本,例如“Ѓ> M&1дjшTњM”上面的示例,然后用每个坐标开始一个新行,看起来像这样:
00000452324235234132123 1 1 1 1 1 C i t y S t r e e t n a m e 46A
我唯一能做的就是打开文本文件并逐行阅读:
import re
a = "Filepath.txt"
b = re.compile('[^\sa-zA-Z0-9]\S*')
with open (a) as d:
while True:
e = d.read()
if e:
re.sub(b, "",e)
if not e:
break
print (e)
有没有人可以帮我解决这个问题? 在此先感谢:)
答案 0 :(得分:0)
您可以在一个re.sub
函数中执行此操作。
>>> s = "*ä-#+ölx 00000452324235234132123 xasf 1 1 1 1 1 C i t y S t r e e t n a m e ---..-.yxaewr 46A*"
>>> re.sub(r'[^\sa-zA-Z0-9]\S*', r'', s).strip()
'00000452324235234132123 xasf 1 1 1 1 1 C i t y S t r e e t n a m e 46A'
[^\sa-zA-Z0-9]
匹配除空格以外的所有非单词字符,以下\S*
匹配以下零个或多个空格字符。因此它会删除所提到的非单词字符后的所有字符。