去掉字串開頭,結尾或者中間的空格及其他不想要的字元
阿新 • • 發佈:2019-02-19
討論
這些 strip()
方法在讀取和清理資料以備後續處理的時候是經常會被用到的。
比如,你可以用它們來去掉空格,引號和完成其他任務。
但是需要注意的是去除操作不會對字串的中間的文字產生任何影響。比如:
>>> s = ' hello world \n' >>> s = s.strip() >>> s 'hello world' >>>
如果你想處理中間的空格,那麼你需要求助其他技術。比如使用 replace()
方法或者是用正則表示式替換。示例如下:
>>> s.replace(' ', '') 'helloworld' >>> import re >>> re.sub('\s+', ' ', s) 'hello world' >>>
通常情況下你想將字串 strip
操作和其他迭代操作相結合,比如從檔案中讀取多行資料。
如果是這樣的話,那麼生成器表示式就可以大顯身手了。比如:
with open(filename) as f: lines = (line.strip() for line in f) for line in lines: print(line)
在這裡,表示式 lines
執行資料轉換操作。
這種方式非常高效,因為它不需要預先讀取所有資料放到一個臨時的列表中去。 它僅僅只是建立一個生成器,並且每次返回行之前會先執行strip操作。 = (line.strip() for line in f)
對於更高階的strip,你可能需要使用 translate()
方法。請參閱下一節瞭解更多關於字串清理的內容。