問題
你有一些長字符串,想以指定的列寬將它們重新格式化。
解決方案使用textwrap模塊的fill或wrap函數
假設有一個很長的字符串
s = "Look into my eyes, look into my eyes, the eyes, the eyes, the eyes, not around the eyes, don"t look around the eyes, look into my eyes, you"re under."
如果直接輸出的話,可讀性會比較差
>>> print(s) Look into my eyes, look into my eyes, the eyes, the eyes, the eyes, not around the eyes, don"t look around the eyes, look into my eyes, you"re under.
我們可以使用fill函數來將這個長字符串自動切分為若干短字符串,只需要指定width即可
>>> print(textwrap.fill(s, width=60)) Look into my eyes, look into my eyes, the eyes, the eyes, the eyes, not around the eyes, don"t look around the eyes, look into my eyes, you"re under.
也可以使用wrap函數,但是效果是一樣的,只不過wrap函數返回的是一個列表而不是字符串
我們也可以指定其他一些參數比如initial_indent來設置段落的縮進,更多參數見討論部分的鏈接
>>> print(textwrap.fill(s, width=60, initial_indent=" ")) Look into my eyes, look into my eyes, the eyes, the eyes, the eyes, not around the eyes, don"t look around the eyes, look into my eyes, you"re under.討論
如果希望能匹配終端的大小的話,我們可以使用os.get_terminal_size()來得到終端的寬度,然后傳給width
>>> textwrap.fill(s, width=os.get_terminal_size().columns)
此外,當我們需要格式化的次數很多時,更高效的方法是先創建一個TextWrapper對象,設置好width、initial_indent等等參數,然后再調用fill或者wrap方法
>>> wrap = textwrap.TextWrapper(width=60, initial_indent=" ") >>> print(wrap.fill(s)) Look into my eyes, look into my eyes, the eyes, the eyes, the eyes, not around the eyes, don"t look around the eyes, look into my eyes, you"re under.
關于TextWrapper的其他參數見:
https://docs.python.org/3/lib...
來源Python Cookbook
關注歡迎關注我的微信公眾號:python每日一練
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41538.html
摘要:問題在每日一練中介紹了如何一個可迭代對象,使用運算符即可但往往我們遇到的問題是可迭代對象中的數量是不確定的這個時候該如何拿到我們想要的元素,比如我們只需要可迭代對象的第一個或者最后一個元素而已解決方案使用中的運算符例如我們需要拿到一個元組的 問題 在每日一練0001中介紹了如何unpack一個可迭代對象,使用,運算符即可 但往往我們遇到的問題是可迭代對象中的數量是不確定的 這個時候該如...
摘要:問題如何序列化輸出元素包含字符串元組的字符串元組好繞舉個例子將輸出為解決方案容易想到使用函數,但函數要求元素必須都是字符串類型,否則會拋出錯誤一個比較簡單的方法是將給進中,然后再將給進函數,最后指定函數的參數來輸出如果想要將結果存儲起來,那 問題 如何序列化輸出元素包含字符串元組的字符串元組(好繞) 舉個例子 >>> zoo1 = (monkey, elephant) >>> zoo2...
摘要:問題如何執行外部命令,如解決方案使用庫在之前,使用函數在及之后,使用函數討論命令的執行默認不需要環境,所以當你使用作為參數時,需要將置位,否則會報錯誤通常來說對于執行系統命令,我們會想到,但在官方文檔中已經建議了使 問題 如何執行外部命令,如ls -l 解決方案 使用subprocess庫 在Python 3.5之前,使用subprocess.call()函數 >>> import s...
摘要:問題如何判斷一個文件是否存在解決方案這個問題可以分成幾類問題如果這里的文件指的是文件或目錄,我們可以用方法如果這里的文件指的是普通的文件,我們可以用方法如果這里的文件指的是目錄,我們可以用方法并且在之后,可以使用面向對象的方法使用庫來判斷, 問題 如何判斷一個文件是否存在 解決方案 這個問題可以分成幾類問題 如果這里的文件指的是文件或目錄,我們可以用os.path.exists()方法...
摘要:問題你需要執行簡單的日期操作,計算兩個日期間隔多少天某個日期后的多少天是幾月幾日轉換時間字符串的格式等解決方案使用庫中的和類其中類代表一個日期時間,例如年月日點分秒類代表一個日期間隔對于實例,可以直接進行數學運算得到一個實例,也就是兩個日 問題 你需要執行簡單的日期操作,計算兩個日期間隔多少天、某個日期后的多少天是幾月幾日、轉換時間字符串的格式等 解決方案 使用datetime庫中的d...
閱讀 1525·2021-11-22 09:34
閱讀 3327·2021-09-29 09:35
閱讀 572·2021-09-04 16:40
閱讀 2917·2019-08-30 15:53
閱讀 2590·2019-08-30 15:44
閱讀 2588·2019-08-30 14:10
閱讀 1334·2019-08-29 18:43
閱讀 2211·2019-08-29 13:26