十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
删除文本中的标点示例。供参考。
成都地区优秀IDC服务器托管提供商(成都创新互联).为客户提供专业的资阳服务器托管,四川各地服务器托管,资阳服务器托管、多线服务器托管.托管咨询专线:18980820575
# coding:UTF-8
f=open('e:/python27/biaodian.txt','r')
lines=f.readlines()
f.close()
# 以下新建的文件中只保留英文字母和数字
# 仍按原始的行结构存储
chardigit='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
ff=open('e:/python27/biaodian1.txt','w')
for line in lines:
sts=''
for ch in line:
if ch in chardigit:
sts=sts+ch
print(sts)
ff.write(sts)
ff.write('\n')
ff.close()
这个明显是错误的,你根本没理解replace函数是怎么用的。
Python str.replace(old, new[, max])
方法把字符串str中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max
次。
如果非要用replace()函数来实现要这样写:
import string
m = l
for c in string.punctuation:
m = m.replace(c,")
更简便的方法是用translate(),代码如下:
import string
m = l.translate(None, string.punctuation)
我们想在字符串的开始、结尾或中间去掉不需要的字符,比如说空格符。
解决方案
关注,转发,私信小编“01”即可免费领取Python学习资料!
strip()方法可用来从字符串的开始和结尾处去掉字符。lstrip()和rstrip()可分别从左或从右侧开始执行去除字符的操作。默认情况下这些方法去除的是空格符,但也可以指定其他的字符。例如:
讨论
当我们读取并整理数据以待稍后的处理时常常会用到这类strip()方法。例如,可以用它们来去掉空格、移除引号等。
需要注意的是,去除字符的操作并不会对位于字符串中间的任何文本起作用。例如:
如果要对里面的空格执行某些操作,应该使用其他技巧,比如使用replace()方法或正则表达式替换。例如:
我们通常会遇到的情况是将去除字符的操作同某些迭代操作结合起来,比如说从文件中读取文本行。如果是这样的话,那就到了生成器表达式大显身手的时候了。例如:
这里,表达式lines = (line.strip() for line in f)的作用是完成数据的转换[1]。它很高效,因为这里并没有先将数据读取到任何形式的临时列表中。它只是创建一个迭代器,在所有产生出的文本行上都会执行strip操作。
对于更高级的strip操作,应该转而使用translate()方法。请参见下一节以获得进一步的细节。