我有一个随机字母,数字和字符的文本文件。在打印过程中,我必须删除特殊字符,最后只能使用字母数字字符。你知道吗
文本文件如下:
fkdjks97#!%&jd
28e8uw99...
等等
出于某种原因,它正在打印:
Line read' ,,s.8,ymsw5w-86
'
' ,,s.8,ymsw5w-86
'->' <filter object at 0x0000020406BC8550> '
这些应该只在2行,而不是4行。像这样:
行读',s.8,ymsw5w-86'
',,s.8,ymsw5w-86'->;'s8ymsw5w86'
我的尝试:
file1 = open(textfile1,"r")
while True:
line = file1.readline()
line2 = filter(str.isalnum,line)
print("Line read'", str(line), "'")
print("'", str(line), "'->'", line2, "'")
if len(line) == 0:
break
filter()
是一个迭代器对象;您实际上需要对它进行迭代才能得到结果。你知道吗在本例中,您希望返回一个字符串,因此可以使用
str.join()
进行迭代,并将所有内容放回单个字符串中:请注意,实际上不需要对
file1.readline()
调用使用while True
循环。通过将while True
、line = file1.readline()
和if len(line) == 0: break
行替换为:您可能正在寻找正则表达式解决方案:
这就产生了
将其放入
with...
构造中,您可能使用相关问题 更多 >
编程相关推荐