为什么python中的strip方法不在文本文件中取两个“\ n”

时间:2012-09-17 23:25:14

标签: python

import pdb
input_file_eng = open('engltreaty.txt')
word_list_eng = input_file_eng.read()
pure_word_list_eng = word_list_eng.strip("\n").strip("\r").strip('-').strip('.').strip(',').strip('(').strip(')').strip('[').strip(']')
pdb.set_trace()
input_file_eng.close() 

在断点处,我检查字符串pure_word_list_eng,它仍然包含'[',']',“\ n”“\ n \ n”

我在下面是文本文件:

  

英国维多利亚女王大不列颠及英国女王   爱尔兰与她的皇家青睐土着酋长和部落   新西兰并急于保护他们的公正权利和财产   并确保他们享有和平与良好秩序   由于女王陛下的数量众多,这是必要的   已经在新西兰定居的受试者迅速   从欧洲和澳大利亚扩展移民仍然是   正在进行中正确地组建和任命一名工作人员   被授权与新西兰原住民一起对待   承认女王陛下对整个或任何一个主权的主权   这些岛屿的一部分 - 因此女王陛下渴望   建立一种公民形式的公民政府,以避免这种情况   必要时必须造成的恶果   法律和机构都与当地人口和她一样   科学家们非常高兴能够授权和授权我   威廉霍布森是女王陛下皇家海军领事和船长的船长   新西兰这些地区的副州长可能是或   以后将割让给女王陛下邀请联盟和   新西兰独立酋长同意以下条款   和条件。

     

第一条[第1条]联邦酋长国   新西兰联合部落和独立的独立酋长   尚未成为联邦成员的女王陛下   英国女王绝对无保留所有权利   和联邦或个人的主权权力   酋长分别运动或拥有,或可能应该   行使或拥有各自领土作为唯一的领土   主权。

     

第二条[第2条]英国女王陛下   确认和保证新西兰酋长和部落以及   各自的家庭和个人完全独家和   不受干扰地拥有他们的土地和庄园森林渔业   和他们可以集体或单独的其他财产   只要是他们的愿望和希望保留相同的东西就拥有   他们的财产;但是联合部落和酋长的酋长   个人酋长屈服于女王陛下的专有权   可以处置对其所有者的土地的抢占   以可能达成协议的价格疏远   各自的业主和女王陛下任命的人员   和他们一起代表。

     

第三条[第3条]考虑到陛下   英国女王延伸到新西兰的土着她的王室   保护并赋予他们所有的权利和特权   英国主题。

     

(签名)威廉霍布森,副州长。

     

现在我们是联合部落联邦酋长   新西兰国会在怀唐伊和维多利亚州的国会召开   我们新西兰的独立和独立酋长声称   对以后指定的部落和领土的权力   我们各自的名字,已经完全理解了   上述条约的规定,接受并进入同一条约   我们所见证的充分精神和意义   在地点和日期附上我们的签名或标记   分别指定。二月六日在怀唐伊签订   我们的主一千八百四十年。

3 个答案:

答案 0 :(得分:5)

来自the docs

  

返回字符串的副本,其中删除了前导和尾随字符

请尝试str.replace()

答案 1 :(得分:4)

尝试str.translate

  

string.translate(s,table [,deletechars])
  删除s中的所有字符   在deletechars(如果存在)中,然后翻译   使用表的字符,必须是256个字符的字符串给出   每个字符值的翻译,由其序数索引。如果   table为None,则只执行字符删除步骤。

所以

pure_word_list_eng = word_list_eng.translate(None, "\n\r-.,()[]")

答案 2 :(得分:3)

如Ignacio所述,str.strip()仅从字符串的开头和结尾删除字符。您应该使用str.replace()或使用正则表达式的替代方法:

import re
pure_word_list_eng = re.sub(r'[-\n\r.,()]+', '', word_list_eng)