九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
python創(chuàng)建可以打開文件的EXE

首先拋出一個要解決的問題,在學python時用jupyter notebook記了很多筆記,而實際操作時有一些細節(jié)不記得了,需要查看筆記。但是一個.ipynb文件用文本編輯器打開,多了很多我們不想看到的文本,而用jupyter打開又很慢。于是需要設(shè)置出一個可執(zhí)行程序exe文件)來打開.ipynb文件。

本文展示了一步步學習如何創(chuàng)建.exe程序的過程,最后做出我們想要的程序

本文分為如下幾個內(nèi)容

  • 生成最簡單的exe程序,只打印出一段字符串

  • 帶有參數(shù)的exe程序

  • 參數(shù)是文件名的情況

  • 真正實現(xiàn)

  • 改進方向

生成最簡單的exe程序

將python腳本轉(zhuǎn)化為exe程序比較常用的是兩個庫,py2exe和pyinstaller,由于前者不支持3.5及以上版本,操作也相對復(fù)雜,因此這里選擇pyinstaller。

安裝:在cmd中直接pip install PyInstaller 就安裝好了。

之后我們只要使用pyinstaller這條命令即可,正常來說我們安裝好這個庫之后,pyinstaller.exe就在環(huán)境變量中了,所以我們可以在任何文件夾下的cmd窗口中調(diào)用這條命令。

pyinstaller庫生成exe文件非常簡單,只要一條命令就能自動生成,我們來看一下下面這個簡單例子

在cmd_try文件夾下創(chuàng)建hello.py文件,文件中的內(nèi)容如下

i = input('please input your name: ') print('Hello World '+i+'!')
# 注意:py2中的raw_input在py3中改成了input
# 用input而不是只是print是為了防止到時候調(diào)用exe程序時窗口一閃而過

然后我們在cmd_try文件夾下打開命令窗口,輸入 pyinstaller hello.py 就會自動生成幾個文件夾,dist文件夾中的hello文件夾中,就有了hello.exe文件,雙擊這個文件就會彈出一個讓你輸入名字的窗口,這就代表這個可執(zhí)行程序創(chuàng)建完成。

注:同時會生成一個build文件,其中也有一個hello.exe,不用管它,把build文件夾刪掉,dist中的hello.exe文件依然可以運行

如果要繼續(xù)修改程序,修改后的hello.py保存后,要再用pyinstaller hello.py這條命令重新生成,覆蓋原有的文件,hello.exe才能執(zhí)行新的功能。

下面我們在命令行中調(diào)用這個可執(zhí)行程序

在之前的命令行窗口中輸入 cd dist 進入dist文件夾中,再輸入 cd hello 進入hello文件夾中,再輸入兩種命令都可以:

  • 直接輸入hello即調(diào)用了hello.exe文件,會在當前這個命令窗口中讓你輸入你的名字

  • 輸入 start hello 則會另外出現(xiàn)一個命令窗口讓你輸入你的名字

  • 其中第一種其實和在cmd_try文件夾下的命令行窗口中輸入python hello.py效果相同,所以我們可以用這個來測試,測試結(jié)束后再生成exe文件

帶有參數(shù)的exe程序

因為我們的exe程序需要能夠打開一個文件,所以需要調(diào)用外部參數(shù)。下面我們實現(xiàn)在命令行調(diào)用hello.py文件時傳入?yún)?shù)。這里使用python內(nèi)置的命令行解析庫argparse,這個庫的官網(wǎng)特別詳細,一步一步教你如何操作,有興趣的讀者可以直接去官網(wǎng)學習,這里僅僅做最簡單的使用。

hello.py文件中內(nèi)容改為

import argparse parser = argparse.ArgumentParser parser.add_argument('name', help='input your name') # 添加 name 參數(shù),并指定help信息args = parser.parse_args # 讓args這個變量可以引用這個參數(shù)print('Hello World '+ args.name +'!') # 用args.name引用命令行中輸入的參數(shù)

我們先直接用python來調(diào)用,在cmd_try目錄下的cmd窗口輸入 python hello.py 'bob' ,我們想要的結(jié)果就會在下面被打印出來

注:因為剛剛我們用cd命令把命令行窗口的位置切換到了hello文件夾下,如果想返回 cmd_try 文件夾下,則輸入兩次 cd .. 即可

接下來我們將程序打打包成exe文件,輸入pyinstaller hello.py

cd到hello文件夾下輸入hello 'bob'也可以打印出正常的結(jié)果

參數(shù)是文件名

為了和我們的目標更接近一點,我們現(xiàn)在實現(xiàn)提取一個txt文件中的內(nèi)容,前后加一個html的標簽,再存成一個html文件

hello.py文件換為如下內(nèi)容

import argparse parser = argparse.ArgumentParser parser.add_argument('file', help='input your filename') # 添加 file 參數(shù),并指定help信息args = parser.parse_args # 讓args這個變量可以引用這個參數(shù)with open(args.file, 'r') as f: r = f.read html = '' + r + ''with open('a.html', 'w') as f: f.write(html)

同時在cmd_try文件夾中創(chuàng)建hi.txt文件,內(nèi)容如下

Hi world! Hello world!

在cmd_try文件夾下的cmd窗口中輸入 python hello.py 'hi.txt' 發(fā)現(xiàn)執(zhí)行成功,在cmd_try文件夾下生成了一個a.html文件,我們可以雙擊這個文件則自動用瀏覽器打開,內(nèi)容也是我們剛剛指定的內(nèi)容。

于是我們再執(zhí)行pyinstaller hello.py轉(zhuǎn)化為exe程序。同時刪除剛剛生成的a.html文件。

在hello文件夾下的cmd窗口中輸入 hello C:\python\cmd_try\hi.txt(具體更改為讀者電腦中hi.txt文件所在路徑) 則會在hello文件夾下生成a.html

刪除a.html文件,我們再換一種方式運行

右鍵hi.txt,選擇打開方式-選擇其他應(yīng)用-更多應(yīng)用-在這臺電腦上查找其他應(yīng)用,然后找到hello.exe的位置,勾選上“始終用此程序打開”,點擊打開。這次沒反應(yīng),但是下次你雙擊這個文件,就會在cmd_try文件夾下產(chǎn)生一個a.html文件,即運行成功。必須要設(shè)置默認用這個程序打開該類型文件,因為用這個過程選打開是沒有效果的,只有雙擊打開才可以。雙擊打開就相當于用hello.exe調(diào)用這個文件作為參數(shù),也就是之前我們在命令行中輸入的執(zhí)行代碼。

到現(xiàn)在就萬事具備了,接下來我們只要把試驗的代碼換成處理.ipynb文件的就可以了

真正實現(xiàn)

用文本編輯器打開.ipynb文件發(fā)現(xiàn),它是一個json格式的文本數(shù)據(jù),因此我們可以直接讀取,轉(zhuǎn)化為字典列表,再進行提取、添加標簽即可生成網(wǎng)頁源代碼,再寫出來成一個html文件即可。

因為主要是查看代碼,所以這里只提取標題和代碼,文本不予提取。標題會匯總在一起放在前面構(gòu)成目錄鏈接。

在my_project文件夾下建立一個ipynb_view.py文件,里面內(nèi)容如下

import re
import json
import argparse
def view_ipynb_html(path_ipy, newname): # 傳入要打開的文件路徑,和新生成的文件名稱 # path_ipy 是.ipynb文件及所在路徑 with open(path_ipy, 'r', encoding='utf-8') as f: a = f.read # 讀取得到的是一個json格式的字符串 b = json.loads(a) # 轉(zhuǎn)化為字典格式便于處理 css = 'style type='text/css'>\nul li{list-style: none;}\na {text-decoration: none}style>' # 添加css樣式,讓目錄簡單一點 s = '\n' + css + '\n i want to replace here \n' # 創(chuàng)建一個字符串變量,之后所有內(nèi)容往上面加,組成一個完整的html代碼 contents = '
    \n'
# 目錄的html代碼,之后替換上面的 i want to replace here for d in b['cells']:
if d['cell_type'] == 'raw' or d['cell_type'] == 'code': # 提取代碼 s += 'xmp>' + '\n' # 這個標簽可以把里面的內(nèi)容原樣輸出 for i in d['source']: s += i.rstrip + '\n' s += 'xmp>
\n'
elif d['cell_type'] == 'markdown': # 提取標題 result = re.findall('#+ .+',d['source'][0])
if result: n = result[0].count('#') # 查看幾級標題 result1 = re.sub('#+ ''',result[0]) s += '<> + str(n) + ' id='' + result1 +''>' + result1 + ' + str(n) + '>' + '\n' contents += '
  • + result1 + '' target=''>' + ' '*(n-1)*4 + result1 + '\n' s += '\n' contents += '' s = s.replace('i want to replace here',contents)
    with open(newname, 'w') as f: f.write(s)# 命令行解析,以文件及其路徑作為文件的參數(shù)

    parser = argparse.ArgumentParser parser.add_argument('file', help='input your filename') # 添加 file 參數(shù),并指定help信息args = parser.parse_args # 讓args這個變量可以引用file這個參數(shù)

    # 提取新文件名oriname = re.search('\\\\(\w*?\.ipynb)',args.file).group(1) newname = oriname.replace('ipynb''html')# 調(diào)用函數(shù)創(chuàng)建文件

    view_ipynb_html(args.file,newname)

    文件寫好保存之后,在ipynb_view文件夾下打開命令行窗口,輸入 python ipynb_view.py C:\Jupyter\base.ipynb (路徑改為讀者自己的.ipynb文件路徑),運行之后即可在ipynb文件夾下生成一個base.html文件,可以用瀏覽器打開查看筆記內(nèi)容。

    下面我們再將py文件轉(zhuǎn)化為可執(zhí)行程序。在ipynb_view文件夾下打開命令行窗口,輸入pyinstaller ipynb_view.py即創(chuàng)建完成。

    之后只要找到一個.ipynb文件,設(shè)置打開方式默認是ipynb_view.exe,以后每次雙擊.ipynb文件都會在.ipynb所在文件夾下生成一個同名的.html文件,速度還是很快的,這樣查看筆記就方便多了。

    改進方向

    上面只是提供一個思路和簡單的實現(xiàn),還不是十分完善,感興趣的讀者可以再自己把代碼完善起來,可以有以下改進方向作為參考

    • 第一是這樣每次生成的一個html文件,都要手動刪除。如果可以用程序控制把HTML內(nèi)容直接用瀏覽器打開就更好了,或者編寫用完自動刪除的代碼

    • 第二是上面創(chuàng)建html代碼python代碼可讀性不強,只是因為需求比較簡單,暫時應(yīng)付一下,有更高需求的讀者可以試一試編寫一個添加標簽、屬性、css樣式的類,讓代碼結(jié)構(gòu)更加清晰?;蛘哂矛F(xiàn)成的pyH庫貌似可以實現(xiàn)

    • 第三是文本內(nèi)容沒有加進來,因為里面有各種markdown格式標記,不是很好處理,這里就直接舍棄了,有需要的讀者可以寫程序把文本也讀取進來

    本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
    打開APP,閱讀全文并永久保存 查看更多類似文章
    猜你喜歡
    類似文章
    python .py文件在集成環(huán)境怎么打包成為EXE文件?
    py文件生成exe程序
    手把手教你打包Python腳本實現(xiàn)程序界面化 -「TBtools插件開發(fā)」
    Pycharm項目生成可執(zhí)行exe文件(Windows版)_如何將pycharm文件變?yōu)閣indows可執(zhí)行的程序
    python代碼如何打包為.exe文件
    Python3把寫好的程序封裝成exe文件,在windows系統(tǒng)下直接運行
    更多類似文章 >>
    生活服務(wù)
    熱點新聞
    分享 收藏 導長圖 關(guān)注 下載文章
    綁定賬號成功
    后續(xù)可登錄賬號暢享VIP特權(quán)!
    如果VIP功能使用有故障,
    可點擊這里聯(lián)系客服!

    聯(lián)系客服