无法从BeautifulSoup文本输出中删除换行符(Python 2.7.5)

Ben*_*rde 6 python text beautifulsoup

我正在尝试编写一个程序来解析一系列HTML文件,并将结果数据存储在.csv电子表格中,这非常依赖于新行正确的位置.我已经尝试了所有可以找到的方法来删除某些文本中的换行符,但无济于事.相关代码如下所示:

soup = BeautifulSoup(f)
ID = soup.td.get_text()
ID.strip()
ID.rstrip()
ID.replace("\t", "").replace("\r", "").replace("\n", "")
dateCreated = soup.td.find_next("td").get_text()
dateCreated.replace("\t", "").replace("\r", "").replace("\n", "")
dateCreated.strip()
dateCreated.rstrip()
# debug
print('ID:' + ID + 'Date Created:' + dateCreated)
Run Code Online (Sandbox Code Playgroud)

结果代码如下所示:

ID:
FOO
Date Created:
BAR
Run Code Online (Sandbox Code Playgroud)

这个和同一个程序的另一个问题一直困扰着我.帮助太棒了.谢谢.

编辑:想出来,这是一个非常愚蠢的错误.而不仅仅是做

ID.replace("\t", "").replace("\r", "").replace("\n", "")
Run Code Online (Sandbox Code Playgroud)

我应该做的

ID = ID.replace("\t", "").replace("\r", "").replace("\n", "")
Run Code Online (Sandbox Code Playgroud)

g.d*_*d.c 5

您手头的问题是您期望从返回新值的实际操作中进行就地操作。

ID.strip() # returns the rstripped value, doesn't change ID.
ID = ID.strip() # Would be more appropriate.
Run Code Online (Sandbox Code Playgroud)

您可以使用正则表达式,尽管正则表达式对于这个过程来说太过分了。实际上,特别是如果它是开始和结束字符,只需将它们传递给 strip:

ID = ID.strip('\t\r\n')
Run Code Online (Sandbox Code Playgroud)