[英]In Python CSV module while reading and writing how to get rid of apostrophe
[英]How can I get rid of apostrophe?
我正在传递一个文本文件,我希望摆脱所有可能的麻烦。 我正在使用以下功能:
def apost(nostop):
for n in nostop:
final=[]
removed=[]
for y in n:
r=remove_apos(y)
final.append(r)
removed.append(final)
print("Task 2: Apostrophy removed!")
return removed
这是remove_apos的主体:
def remove_apos(stemmed):
for suffix in ["'s", "'v", "'t", "'d", "'r", "'"]:
if stemmed.endswith(suffix):
return stemmed[:-len(suffix)]
return stemmed
当我说一个句子时: football's awesome
又回到了我football'
我无法摆脱撇号。 此外,当我removed
打印时,我得到: [[u'football\’s']]
您的问题似乎是您正在与ASCII撇号进行比较,但是您的文本包含或也包含Unicode撇号。
普通的旧撇号U + 0027是您在未按下Shift的情况下按一下美国键盘上的['/“]键时得到的默认值。
U + 2019的“正确单引号”完全是另外一回事。 您可能会从文字处理程序或电子邮件程序中获取该信息,该程序会尝试自动将直引号转换为斜引号。 (例如,Word和Office Email都在文本框中执行此操作。文档中的Libre Office也是如此。)
您可能应该使用正则表达式来匹配所有这些可能的字符。
删除所有撇号真的很容易:
def remove_apos(nostop):
return "".join(char for char in nostop if char != "'")
您还可以使用while
循环和str.remove()
方法将其删除:
def remove_apos(nostop):
while "'" in nostop:
nostop = nostop.remove("'")
return nostop
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.