亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)問題

 更新時(shí)間:2019年01月14日 09:46:07   作者:killercars  
今天小編就為大家分享一篇淺談python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

寫了一個(gè)練手的爬蟲...在輸出的時(shí)候出現(xiàn)了讓人很不愉♂悅的問題

像這樣:

python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)

令人十分難受??!

#------------------------------------------

在此之前先說一下python中的.format格式化輸出

python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)

python2.6開始,可以使用str.format進(jìn)行輕松的格式化,

如上可以看到,對(duì)變量的處理簡潔靈活,此外對(duì)數(shù)字的各種位數(shù)處理也很到位

{:<x}的語法表示左對(duì)齊(>為右對(duì)齊,^為居中),少于x位自動(dòng)補(bǔ)齊(默認(rèn)為空格補(bǔ)齊)

這里值得注意的是,x也可以作為變量代入:

python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)

#------------------------------------------

著手解決問題,

第一反應(yīng)使用\t制表符,帶來的問題便是字符串長度差距超過一個(gè)制表位時(shí),會(huì)跳到下一個(gè)制表位,如圖:

python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)

不能接受,使用str.format補(bǔ)齊name屬性的長度為25

結(jié)果卻是這樣的:

python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)

py雖好,有些細(xì)節(jié)還是沒有照顧到中文

這里補(bǔ)齊長度時(shí)中文字符也按1字節(jié)計(jì)算了,

然而我們知道,utf-8中中文占用3個(gè)字節(jié),GBK中占用了2個(gè)字節(jié),只算作1字節(jié)顯然不能對(duì)齊

這時(shí)求助于prettytable包輸出表格,然而輸出也不理想,可以想象也沒有考慮中文編碼的問題(或是需要設(shè)置編碼為utf-8或gbk?)

分析一下理想的name所占的長度,應(yīng)為固定的x字節(jié)(這里按目前的爬取結(jié)果暫時(shí)取22)

那么他的補(bǔ)齊長度應(yīng)為

len = 22 - gbk編碼下name的字節(jié)數(shù) + name的字符數(shù)

幸運(yùn)的是str.format支持使用變量代替補(bǔ)齊長度的值

嘗試以下代碼:

print('[{name:<{len}}x'.format(name=name+']',len=22-len(name.encode('GBK'))+len(name)))

結(jié)果十分接近理想了:

python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)

還是有一些迷之問題導(dǎo)致1-0.5字節(jié)長度的偏差,猜測(cè)是由于中文字體不是等寬字體的緣故?

然而不用多慮,這里就可以使用一記粗暴的制表符\t解決問題了

print('[{name:<{len}}\tx'.format(name=name+']',len=22-len(name.encode('GBK'))+len(name)))

python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)

大功告成!鏘鏘!

#------------------------------------------

后話

這次寫的主要是一個(gè)爬取幾個(gè)主要交易網(wǎng)站以及steam上dota2飾品價(jià)格的爬蟲,里面遇到的問題其實(shí)也挺多的比如登錄動(dòng)態(tài)加載等等

等寫的比較完善了大概也會(huì)一起發(fā)上來啦~

以上這篇淺談python str.format與制表符\t關(guān)于中文對(duì)齊的細(xì)節(jié)問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • matplotlib savefig 保存圖片大小的實(shí)例

    matplotlib savefig 保存圖片大小的實(shí)例

    今天小編就為大家分享一篇matplotlib savefig 保存圖片大小的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python fileinput模塊使用實(shí)例

    Python fileinput模塊使用實(shí)例

    這篇文章主要介紹了Python fileinput模塊使用實(shí)例,fileinput模塊可以遍歷文本文件的所有行,本文就給出它的使用代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • 解決python訪問報(bào)錯(cuò):jinja2.exceptions.TemplateNotFound:index.html

    解決python訪問報(bào)錯(cuò):jinja2.exceptions.TemplateNotFound:index.html

    這篇文章主要介紹了解決python訪問報(bào)錯(cuò):jinja2.exceptions.TemplateNotFound:index.html,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 如何利用python實(shí)現(xiàn)詞頻統(tǒng)計(jì)功能

    如何利用python實(shí)現(xiàn)詞頻統(tǒng)計(jì)功能

    詞頻統(tǒng)計(jì)用途很廣泛,比如我們統(tǒng)計(jì)某篇文章中的用詞頻率,網(wǎng)絡(luò)熱點(diǎn)詞匯,再比如起名排行榜呀、熱門旅游景點(diǎn)排行榜呀什么的,其實(shí)也都可以套用,這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)詞頻統(tǒng)計(jì)功能的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • django+mysql的使用示例

    django+mysql的使用示例

    django可以自動(dòng)生成這些create table, alter table, drop table的操作,這篇文章主要介紹了django+mysql的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python中使用dwebsocket實(shí)現(xiàn)后端數(shù)據(jù)實(shí)時(shí)刷新

    Python中使用dwebsocket實(shí)現(xiàn)后端數(shù)據(jù)實(shí)時(shí)刷新

    dwebsocket是Python中一款用于實(shí)現(xiàn)WebSocket協(xié)議的庫,可用于后端數(shù)據(jù)實(shí)時(shí)刷新。在Django中結(jié)合使用dwebsocket和Channels,可以實(shí)現(xiàn)前后端的實(shí)時(shí)通信,支持雙向數(shù)據(jù)傳輸和消息推送,適用于實(shí)時(shí)聊天、數(shù)據(jù)監(jiān)控、在線游戲等場(chǎng)景
    2023-04-04
  • Python中JsonPath提取器和正則提取器

    Python中JsonPath提取器和正則提取器

    本文主要介紹了Python中JsonPath提取器和正則提取器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python中ini配置文件讀寫的實(shí)現(xiàn)

    Python中ini配置文件讀寫的實(shí)現(xiàn)

    本文主要介紹了Python中ini配置文件讀寫的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python禁用鍵鼠與提權(quán)代碼實(shí)例

    python禁用鍵鼠與提權(quán)代碼實(shí)例

    這篇文章主要介紹了python禁用鍵鼠與提權(quán)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python高級(jí)架構(gòu)模式知識(shí)點(diǎn)總結(jié)

    Python高級(jí)架構(gòu)模式知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于Python高級(jí)架構(gòu)模式知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-08-08

最新評(píng)論