我有以下代码块。我可以在写入之前删除特定字符串吗?
while str(line).find("ii") < 0:
if str(line)[0].isdigit():
if str(line).find("No Action Taken") < 0 and str(line).find("Existing IV Retest") < 0:
#<----LINE HERE TO REMOVE ANYTHING I SPECIFY------> example anything in brackets [),(,&,&,#,@]
f.write(str(line).strip())
f.write(',')
答案 0 :(得分:1)
你的问题有点神秘,但我认为你正在寻找正则表达式。
如果要从字符串中删除括号内的任何内容:
import re
line = "hello [delete this] there!"
line = re.sub(
r"""(?x) # Verbose regex:
\[ # Match a [
[^][]* # Match zero or more (*) characters except (^) ] or [
\] # Match a ]""",
"", line)
结果:
line == 'hello there!'
答案 1 :(得分:0)
假设我理解正确:
正常方式:
for i in [')','(','&','&','#','@']:
line = line.replace(i,'')
一线方式:
line = reduce(lambda a,b: a.replace(b,''), [')','(','&','&','#','@'], line)
示例:
>>> line = "blah!@#*@!)*%^(*%^)@*(#$)@#*$)@#*@#)@$*)@!*#)@#@!)#*%$)$#%$%blah"
>>> line = reduce(lambda a,b: a.replace(b,''), [')','(','&','&','#','@'], line)
>>> print line
blah!*!*%^*%^*$*$*$*!*!*%$$%$%blah
答案 2 :(得分:0)
使用line = line.replace('#', '')
从字符串中删除“#”。您可以为要删除的所有字符重复该语句(不是特别是字符BTW)。
但是,更好的方法是使用正则表达式(对于更复杂的模式),可以通过Python中的re
包获得。
类似于:line = re.sub(re_pattern, "", line)