【问题标题】:Adding a new string method in Python在 Python 中添加一个新的字符串方法
【发布时间】:2016-09-23 21:09:22
【问题描述】:

我正在解析一堆 HTML,并且在代码中遇到了很多“\n”和“\t”。所以我正在使用

"something\t\n here".replace("\t","").replace("\n","")

这行得通,但我经常使用它。有没有办法定义一个字符串函数,沿着替换本身(或查找、索引、格式等)的行,这将使我的代码有点漂亮,比如

"something\t\n here".noTabsOrNewlines()

我试过了

class str:
    def noTabNewline(self):
        self.replace("\t","").replace("\n","")

但这并不好。感谢您的帮助。

【问题讨论】:

  • 你正在创建一个类并使用一种方法来执行你的功能。确保你阅读了类和对象
  • 改用noTabsOrNewlines("something\t\n here")怎么样?
  • @RyanAmos 谢谢。这样就完美了。当然现在我仍然很好奇如何定义一个将出现在“某物”之后的方法。>
  • @BrandonMacer:您不能向内置类型添加方法。

标签: python string function class


【解决方案1】:

虽然您可以按照这些思路 (https://stackoverflow.com/a/4698550/1867876) 做一些事情,但更符合 Python 风格的事情应该是:

myString = "something\t\n here" ' '.join(myString.split())

您可以查看此线程以获取更多信息: Strip spaces/tabs/newlines - python

【讨论】:

  • 我会接受它,因为它很漂亮,这就是我想要的,尽管我仍然对向“某物”(或 [某物] 或(某物)添加方法)感到好奇
  • 您可以在stackoverflow.com/a/4698550/1867876 看到之前的帖子。我更新了我的答案以包括上面的内容。
【解决方案2】:

你可以试试 encoding='utf-8'。否则在我看来,除了更换它之外别无他法。 python也用'/xa0'替换它的空格,所以无论如何你必须替换它。我们可以通过 (readline()) 逐行阅读,而不仅仅是 read() 它。

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多