發表文章

目前顯示的是 12月, 2018的文章

在cmd中一執行py就遇到ImportError: No Module Named bs4

圖片
這問題困擾了我兩天:當你裝好python3.x,在Windows的cmd中執行main.py時,出現:failed:no module named bs4 原因: 這通常發生在「非原開發機」上,你在A機寫完py,移到B機就會出錯。 因為你在原開發機上之所以能跑,是因為你已經在它的系統裡裝好了package。但是移動時這些package可沒跟著移。 這個py是在venu中執行,而你在cmd中卻是要求用系統執行。venu中的package可不會跑到系統上去。所以你必須啟動venu來執行py。 而我這次是在A機上用PyCharm建立專案並在B機上執行,而PyCharm通常會幫你建好venu來執行專案。就是遇到該原因,也好好的認識了venu、virtualenv。 認識與注意: 系統中的package跟venu中的package及功能是不相通的,包含pip、wheel、virtualenv(venu)、bs4...等。 你裝好python並設置好系統變數後,pip install預設會裝在系統,除非你進入venu的pip所在資料夾。 venu就是一種python的虛擬環境,類似java。你可以進入venv\Scripts中執行activate來啟動。 解決: 進入venu再執行py即可。 參考: https://stackoverflow.com/questions/11783875/importerror-no-module-named-bs4-beautifulsoup https://blog.csdn.net/You_are_my_dream/article/details/53029233 不含病毒。 www.avast.com

用Dir指令列出Unicode檔名清單

圖片
參考至: http://pbice.blogspot.com/2010/11/dirunicode.html   我原本就知道MS-DOS模式底下的dir指令可以將結果輸出成文字檔,這樣可以很方便的將所有檔案的檔名做成清單。不過,遇到Unicode檔名該如何處理? 先新增一個文字檔(例如list.txt),將編碼改成Unicode。 輸入 cmd /u ,以Unicode模式執行。 執行dir指令, dir >> list.txt 。如果只想列出檔名、不要日期、路徑等資訊,可以加參數 b 。 注意輸出時一定要有2個輸出符號>>,否則會亂碼。 如果需要大量更改檔名,可以配合 Ant Renamer 使用。 不含病毒。 www.avast.com

Python在WIN下CMD運行中文亂碼及python 2.x python 3.x編碼問題

圖片
參考至: https://blog.csdn.net/jia304349145/article/details/59706455 python 2.x 以下為python 2.x版本 在CMD中運行python代碼時,我們會發現,即使在代碼中加入# -*- coding:utf-8 -*- 這段代碼,中文仍然會亂碼。如下: # -*- coding:utf-8 -*- content = "我是中文" print content 結果: 網上搜索的方法中說,把CMD的編碼格式改為UTF-8格式,命令介紹: chcp 65001       #转换为utf- 8 代码页 chcp 936           #转换为默认的gbk 一般CMD默認gbk,在CMD窗口中輸入chcp 65001 修改為utf-8 在運行看看: 很遺憾,還是亂碼,這樣的話,只能從代碼入手了,因為CMD默認gbk編碼,所以只能把代碼中的中文進行gbk編碼了。 utf-8通過解碼轉化為unicode,然後將unicode編碼轉化為gbk 代碼: # -*- coding:utf-8 -*- content = "我是中文" content_unicode = content.decode( "utf-8" ) content_gbk = content_unicode.encode( "gbk" ) print content_gbk python3.x python3.x中在CMD中中文輸出不會亂碼。 python2.x和python3.x產生差別的原因: 主要是二者對於字符串的編碼不同 python 2.x: python 2.x的字符串是有編碼的,默認為ascii,但如果在其中寫中文的話,解釋器一般會報錯,所以都在代碼第一行或者第二行規定編碼格式: # -*- coding:utf-8 -*- 想要轉換為其他編碼,就要進行先解...