關於Python指令碼開頭兩行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定
#!/usr/bin/python
是用來說明指令碼語言是python的
是要用/usr/bin下面的程式(工具)python,這個直譯器,來解釋python指令碼,來執行python指令碼的。
# -*- coding: utf-8 -*-
是用來指定檔案編碼為utf-8的
詳情可以參考:
在此,詳細的(主要是翻譯)解釋一下,為何要加這個編碼宣告,以及如何新增編碼宣告:
使用檔案編碼宣告以前所遇到的問題
Python 2.1中,想要輸入Unicode字元,只能用基於Latin-1的"unicode-escape"的方式輸入 -> 對於其他非Latin-1的國家和使用者,想要輸入Unicode字元,就顯得很繁瑣,不方便。
希望是:
程式設計人員,根據自己的喜好和需要,以任意編碼方式輸入字串,都可以,這樣才正常。
建議選用的方案
所以,才有人給Python官方建議,所以才有此PEP 0263。
此建議就是:
允許在Python檔案中,通過檔案開始處的,放在註釋中的,字串形式的,宣告,宣告自己的python檔案,用何種編碼。
由此,需要很多地方做相應的改動,尤其是Python檔案的解析器,可以識別此種檔案編碼宣告。
具體如何宣告python檔案編碼?
上面已經說了,是,檔案開始處的,放在註釋中的,字串形式的,宣告。
那具體如何宣告,以什麼樣的格式去宣告呢?
其實就是,你之前就見過的,這種:
1 |
#
-*- coding: utf-8 -*-
|
對此格式的詳細解釋是:
-
如果沒有此檔案編碼型別的宣告,則python預設以ASCII編碼去處理
- 如果你沒宣告編碼,但是檔案中又包含非ASCII編碼的字元的話,python解析器去解析的python檔案,自然就會報錯了。
- 必須放在python檔案的第一行或第二行
- 支援的格式,可以有三種:
-
更加精確的解釋是:
-
符合正則表示式:
?
1 "coding[:=]\s*([-\w.]+)"
-
的都可以,很明顯,如果你熟悉正則表示式,也就可以寫出來,其他一些合法的編碼宣告,以utf-8為例,比如:
?
1 2 3 4 5 相關推薦
王權富貴出錯集:Python指令碼開頭兩行的:#!/usr/bin/env python和# -*- coding: utf-8 -*-的作用
1.#!/usr/bin/env python 是用來說明指令碼語言是 python 的 是要用 /usr/bin下面的程式(工具)python,這個直譯器,來解釋 python 指令碼,來執行 python 指令碼的。 2、# -*- coding:
關於Python指令碼開頭兩行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定
#!/usr/bin/python 是用來說明指令碼語言是python的 是要用/usr/bin下面的程式(工具)python,這個直譯器,來解釋python指令碼,來執行python指令碼的。 # -*- coding: utf-8 -*- 是用來指定檔案編
【轉載】關於Python腳本開頭兩行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件編碼類型
ron 標識 精確 log 解析器 開始 html weight .org 下面的內容來自:http://www.cnblogs.com/blueskylcc/p/5332642.html, 對方也是轉的,不過沒有找到轉載的出處; 1、#!/usr/bin/python
報錯:/usr/bin/python: Error while finding module specification for 'virtualenvwrapper.hook_loader'
ubuntu14安裝python3後,開啟命令列介面總會提示:/usr/bin/python: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFou
java調Python指令碼(四):java返回Python錯誤日誌
上一篇java調Python指令碼時沒有返回錯誤的日誌提醒行等,在這裡補上,主要用java.lang.Process.getErrorStream() 方法獲取子程序的錯誤流。資料流獲取由該Process物件表示的程序的錯誤輸出流的管道的資料。 1、java程式碼: pub
java調Python指令碼(二):java調Python亂碼問題
java調Python返回結果出現亂碼解決: Python指令碼編碼格式已經用了utf-8,但是返回還是亂碼,說明是java這邊傳過去編碼有問題。 1、Python編碼格式: 2、一般我們中文文字編碼格式常用的有:UTF-8,GBK,GB2312。分別試一下就知道了:
Python中的 #!/usr/bin/python 和 # -*- coding: utf-8 -*-
#!/usr/bin/python 是用來說明指令碼語言是python的 是要用/usr/bin下面的程式(工具)python,這個直譯器,來解釋python指令碼,來執行python指令碼的。 # -*- coding: utf-8 -*- 是用來指定檔案編碼為
[eclipse]添加python默認模板,在首行添加編碼方式(# -*- coding: utf-8 -*-)
編碼方式 window pytho 編碼 分享圖片 技術分享 eclips 方式 pre 1、從eclipse的windows->preference 2、參照如下圖,添加指定的utf-8編碼方式 [eclipse]添加python默認模板,在首行添加編碼方式(#
Python頭部2行 #!/usr/bin/python 和 #!/usr/bin/env 的區別 以及編碼方式的指定 2018-10-23
htm ron http 聲明 strong 命令 正則表達 cnblogs 用處 參考文檔 【整理】關於Python腳本開頭兩行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件編碼類型 Python 頭部 #!/u
轉 : /usr/bin/env: "python\r": 沒有那個檔案或目錄
本文為博主原創文章,轉載請註明出處。 https://blog.csdn.net/OOC_ZC/article/details/72857925 在Ubuntu終端中執行python檔案,報錯 /usr/bin/env: "python\r":沒有那個檔案或目錄 這個檔案是從g
錯誤記錄: linux 使用yum安裝軟體出錯 basn: /usr/bin/yum: /usr/bin/python: bad interpreter: no such file or
最近在使用yum安裝一些東西的時候出現錯誤:比如 yum -y install gcc 錯誤提示: basn: /usr/bin/yum: /usr/bin/python: bad interpreter: no such file or directory 通過網上查詢發現這是由
"#!/usr/bin/python: No such file or director"引發的編碼問題
spa utf8 方法 文件頭 https span diff inux vi編輯器 問題描述 我自己寫了一個Python腳本,在Linux服務器和我的Mac上運行都報錯: ./build_system.py: line 1: #!/usr/bin/python: N
【Python】#!/usr/bin/python 作用
col 調用 spa 執行 font 想要 告訴 解釋 代碼 腳本語言的第一行,目的就是指出,你想要你的這個文件中的代碼用什麽可執行程序去運行它 #!/usr/bin/python是告訴操作系統執行這個腳本的時候,調用/usr/bin下的python解釋器。#!/usr/b
Windows下執行python指令碼報錯“ImportError: No Module named ...”的解決方法
之前遇到一個問題,在Pycharm或IPython之類的IDE上執行指令碼正常,但是直接執行或cmd命令列執行的時候報了模組未能找到的 誤——ImportError: No Module named ...。 這是啥情況? Python在啟動直譯器(Interpreter)的時候
【Python】#!/usr/bin/python 和 #!/usr/bin/env
大部分python檔案的頭部都會寫上 #!/usr/bin/python 或者 #!/usr/bin/env ,這個語句主要和執行模式有關, 如果我們用普通執行模式例如(linux) : python *.py 那麼這個語句在此執行模式下無效。如果想讓python程式像普通程
安裝虛擬環境/usr/bin/python: No module named virtualenvwrapper
錯誤原因:Ubuntu安裝了2.7和3.x兩個版本的python,在安裝時使用的是sudo pip3 install virtualenvwrapper 在我執行的時候預設使用的是python2.x,但在python2.x中不存在對應的模組 所以,在bashrc檔案裡面加入如下命令即
linux - mysql 異常:/usr/bin/which: no mysql in
問題描述 執行:which mysql 報錯:/usr/bin/which: no mysql in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
python指令碼 讀取配置檔案cfg 不讀#號和空行
對配置upxxx.cfg 檔案,內容如下的讀取 #使用教程:zaper不能為零 #同時#後面代表要更新的包 zkper=0# ucs=1#mips_ucs-1.8.1-bin.tar.gz 讀取以上檔案內容,如下指令碼: #!/usr/bin/python # -*- coding: utf-8 -
linux下執行python指令碼的兩種方式
1、直接使用python xxxx.py執行。其中python可以寫成python的絕對路徑。使用which python進行查詢。 2、在檔案的頭部(第一行)寫上#!/usr/bin/python2.7,這個地方使用python的絕對路徑,就是上面用which python查詢來的結果
-bash: ./****.py: /usr/bin/python^M: bad interpreter: No such file or directory
在windows系統下寫的python指令碼,在linux下賦予許可權chmod +x xxx.py 以後,執行./xxx.py執行提示:bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or
-
符合正則表示式:
?