从python中的文本中删除无效符号
我正在尝试从文本中删除无效符号。我有以下代码:从python中的文本中删除无效符号,python,string,python-3.x,Python,String,Python 3.x,我正在尝试从文本中删除无效符号。我有以下代码: def parse_documentation(filename): filename=open(filename) invalidsymbols=["`","~","!", "@","#","$"] for lines in filename: print(lines) for word in lines: print(word) for letter
def parse_documentation(filename):
filename=open(filename)
invalidsymbols=["`","~","!", "@","#","$"]
for lines in filename:
print(lines)
for word in lines:
print(word)
for letter in word:
if invalidsymbols==letter:
print(letter)
首先,我只是通过打印字母来测试它,然后我会添加代码来删除它(del())。我有比列表中的符号更多的无效符号,但是很多,所以我只想使用5或6来检查。我遇到的问题是,它不仅打印无效的符号,而且还打印我文本中的所有字母。此外,出于某种原因,它也会在我的文本之前打印额外的字符。我该如何解决这个问题
我使用的文本是:
he's a jolly good fellow#
I want pizza!
I'm driving to school$
怎么样
怎么样?JoeC已经回答了,但我想补充一点,如果无效符号在该行中出现不止一次,那么您最好执行以下操作
def parse_documentation(filename):
filelines = open(filename)
invalidsymbols=["`","~","!", "@","#","$"]
for line in filelines:
print(lines)
for symbol in invalidsymbols:
if symbol in line:
print("Above line contains %s symbol"%symbol)
关于替换符号,请参阅。JoeC已回答,但我想补充一点,如果您的无效符号在该行中出现多次,那么您最好执行以下操作
def parse_documentation(filename):
filelines = open(filename)
invalidsymbols=["`","~","!", "@","#","$"]
for line in filelines:
print(lines)
for symbol in invalidsymbols:
if symbol in line:
print("Above line contains %s symbol"%symbol)
关于更换符号,请参阅。您可以使用
str.translate
一次删除所有不需要的符号:
>>> txt = """he's a jolly good fellow#
... I want pizza!
... I'm driving to school$"""
>>> print txt.translate(None, "`~!@#$")
he's a jolly good fellow
I want pizza
I'm driving to school
因此,您的代码可能类似于
def parse_documentation(filename, invalid_symbols):
symb_to_remove = ''.join(invalid_symbols)
with open(filename, 'rb') as in_file:
for line in in_file:
safe_line = line.translate(None, symb_to_remove)
<here comes code to do smthng with safe_line>
您可以使用
str.translate
一次删除所有不需要的符号:
>>> txt = """he's a jolly good fellow#
... I want pizza!
... I'm driving to school$"""
>>> print txt.translate(None, "`~!@#$")
he's a jolly good fellow
I want pizza
I'm driving to school
因此,您的代码可能类似于
def parse_documentation(filename, invalid_symbols):
symb_to_remove = ''.join(invalid_symbols)
with open(filename, 'rb') as in_file:
for line in in_file:
safe_line = line.translate(None, symb_to_remove)
<here comes code to do smthng with safe_line>
尝试为此任务使用textcleaner库
按照此链接访问主页和文档:
调用删除符号功能,它将返回一条干净的文本。它只使用正则表达式
功能描述:
尝试使用textcleaner库执行此任务
按照此链接访问主页和文档:
调用删除符号功能,它将返回一条干净的文本。它只使用正则表达式
功能描述:
这不是
for
处理字符串的方式。@IgnacioVazquez Abrams我应该如何访问每行中的字母?也许你应该更仔细地检查for
正在做什么。这不是for
处理字符串的方式。@IgnacioVazquez Abrams我应该如何访问每行中的字母?也许你应该检查更多for
正在做的事情非常接近。欢迎:)每次遇到无效符号(如果符号出现多次)时,您仍在打印该行。只要在代码中添加另一行,您只需执行字符串。替换(字符“”)即可删除字符串中不需要的字符
Welcome:)每次遇到无效符号(如果符号出现多次)时,您仍在打印该行。只要在代码中添加另一行,您就可以通过执行string.replace(character,”)