Python程序的文件頭部聲明小結(jié)
一般Python程序的文件開(kāi)頭會(huì)有這兩行代碼。
#!/usr/bin/env python # coding=utf-8
這里解釋一下這兩行代碼的意義。
一、# coding=utf-8
- 寫(xiě)法:
# -*- coding: UTF-8 -*- 或者 # coding=utf-8
注意:# coding=utf-8 的 = 號(hào)兩邊不要空格。
- 作用:將編碼格式改為utf-8格式
- 編碼與編碼格式:編碼簡(jiǎn)單而言就是一種翻譯的過(guò)程,將機(jī)器能夠理解的語(yǔ)言轉(zhuǎn)換為我們?nèi)祟?lèi)可以理解的語(yǔ)言,編碼格式就是翻譯的方式,根據(jù)對(duì)存儲(chǔ)空間與編碼效率的要求來(lái)選擇不同的編碼格式,常見(jiàn)的編碼格式有:ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等。
- Python版本:Python2中默認(rèn)的編碼格式為ASCII碼格式,Python3中默認(rèn)的編碼格式為UTF-8格式。
- 使用原因:再次繞回來(lái),為什么要加上這句話(huà)呢。因?yàn)樵贏SCII碼格式下不能出現(xiàn)中文字符(代碼或注釋都不可以),否則就會(huì)報(bào)錯(cuò),只有在utf-8格式下才能正常編譯運(yùn)行。所以在Python2版本下,只要出現(xiàn)中文,一定要加上這句頭部聲明。
- 查看當(dāng)前python環(huán)境下的默認(rèn)編碼格式:進(jìn)入python后,在控制臺(tái)下輸入以下命令即可。
>>import sys >>sys.getdefaultencoding() //python2 為>>'ascii',python3 為>>'utf-8'

- 代碼的可移植性:Python3的默認(rèn)格式就是utf-8,這句話(huà)對(duì)它就沒(méi)有意義了,但是考慮到代碼的可移植性,還是建議編寫(xiě)時(shí)養(yǎng)成習(xí)慣,加上這句話(huà)。
二、#!/usr/bin/env python
- 寫(xiě)法:
#!/usr/bin/env python 或者 #!/usr/bin/python
- 作用:用來(lái)指定本腳本用什么解釋器來(lái)執(zhí)行
- 代碼可以被分為兩個(gè)部分
- #?。航凶鰏hebang或者sha-bang,有的翻譯組將它譯為‘釋伴’,即“解釋伴隨行”的簡(jiǎn)稱(chēng)。后面可以加上一個(gè)或數(shù)個(gè)空白字符。
- /usr/bin/env python:解釋器的絕對(duì)路徑,用于指明執(zhí)行這個(gè)腳本文件的解釋器。
- 注意:這行代碼只對(duì) Linux/Unix 用戶(hù)適用,其他環(huán)境下等同于注釋。但是為了代碼的可移植性,建議在編寫(xiě)程序的時(shí)候加上。
- 代碼可以被分為兩個(gè)部分
- #!/usr/bin/python和#!/usr/bin/env python的區(qū)別:
- #!/usr/bin/python:是告訴操作系統(tǒng)執(zhí)行這個(gè)腳本的時(shí)候,調(diào)用 /usr/bin 下的 python 解釋器。
- #!/usr/bin/env python :這種用法是為了防止操作系統(tǒng)用戶(hù)沒(méi)有將 python 裝在默認(rèn)的 /usr/bin 路徑里。當(dāng)系統(tǒng)看到這一行的時(shí)候,首先會(huì)到 env 設(shè)置里查找 python 的安裝路徑,再調(diào)用對(duì)應(yīng)路徑下的解釋器程序完成操作。
#!/usr/bin/python 相當(dāng)于寫(xiě)死了 python 路徑。
#!/usr/bin/env python 會(huì)去環(huán)境設(shè)置尋找 python 目錄,可以增強(qiáng)代碼的可移植性。
- 推薦寫(xiě)法:#!/usr/bin/env python
三、運(yùn)行Python程序
方法和編譯運(yùn)行shell腳本類(lèi)似
- 方法一:給予”執(zhí)行(x)“的權(quán)限后,直接運(yùn)行
chmod u+x xxx.py ./xxx.py
- 方法二:直接告訴操作系統(tǒng)用python解釋器來(lái)編譯運(yùn)行該程序(所以這種情況不加#!/usr/bin/env python也可以運(yùn)行)
python xxx.py
四、結(jié)論
為了讓Python程序在各種系統(tǒng)中,在包含有中文的情況下,可以順利運(yùn)行,加上下面的文件頭部聲明。
#!/usr/bin/env python # coding=utf-8
到此這篇關(guān)于Python程序的文件頭部聲明小結(jié)的文章就介紹到這了,更多相關(guān)Python 文件頭部聲明內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
給Python IDLE加上自動(dòng)補(bǔ)全和歷史功能
這篇文章主要介紹了給Python IDLE加上自動(dòng)補(bǔ)全和歷史功能,需要的朋友可以參考下2014-11-11
python交互模式基礎(chǔ)知識(shí)點(diǎn)學(xué)習(xí)
在本篇內(nèi)容里小編給大家整理的是關(guān)于python交互模式是什么的相關(guān)基礎(chǔ)知識(shí)點(diǎn),需要的朋友們可以參考下。2020-06-06
如何利用pygame實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲
這篇文章主要給大家介紹了關(guān)于如何利用pygame實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用pygame具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
python下函數(shù)參數(shù)的傳遞(參數(shù)帶星號(hào)的說(shuō)明)
python中函數(shù)參數(shù)的傳遞是通過(guò)賦值來(lái)傳遞的。2010-09-09
解決django接口無(wú)法通過(guò)ip進(jìn)行訪(fǎng)問(wèn)的問(wèn)題
這篇文章主要介紹了解決django接口無(wú)法通過(guò)ip進(jìn)行訪(fǎng)問(wèn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python Scrapy框架:通用爬蟲(chóng)之CrawlSpider用法簡(jiǎn)單示例
這篇文章主要介紹了Python Scrapy框架:通用爬蟲(chóng)之CrawlSpider用法,結(jié)合實(shí)例形式分析了Scrapy框架中CrawlSpider的基本使用方法,需要的朋友可以參考下2020-04-04
Python實(shí)現(xiàn)屬性可修改的裝飾器方式
這篇文章主要介紹了Python實(shí)現(xiàn)屬性可修改的裝飾器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02

