欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    專注R、數據分析挖掘、可視化、機器學習

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

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

    本文分為如下幾個內容

    生成最簡單的exe程序

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

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

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

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

    在文件夾下創建hello.py文件,文件中的內容如下

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

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

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

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

    下面我們在命令行中調用這個可執行程序

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

    帶有參數的exe程序

    因為我們的exe程序需要能夠打開一個文件,所以需要調用外部參數。下面我們實現在命令行調用hello.py文件時傳入參數。這里使用內置的命令行解析庫,這個庫的官網特別詳細,一步一步教你如何操作,有興趣的讀者可以直接去官網學習,這里僅僅做最簡單的使用。

    hello.py文件中內容改為

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

    我們先直接用來調用,在目錄下的cmd窗口輸入 hello.py "bob" ,我們想要的結果就會在下面被打印出來

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

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

    cd到hello文件夾下輸入hello "bob"也可以打印出正常的結果

    參數是文件名

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

    hello.py文件換為如下內容

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

    同時在文件夾中創建hi.txt文件,內容如下

    Hi world!
    Hello world!

    在文件夾下的cmd窗口中輸入 hello.py "hi.txt" 發現執行成功,在文件夾下生成了一個a.html文件,我們可以雙擊這個文件則自動用瀏覽器打開,內容也是我們剛剛指定的內容。

    于是我們再執行 hello.py轉化為exe程序。同時刪除剛剛生成的a.html文件。

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

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

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

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

    真正實現

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

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

    在文件夾下建立一個.py文件,里面內容如下

    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) # 轉化為字典格式便于處理 ? ?css = '' # 添加css樣式,讓目錄簡單一點 ? ?s = '\n' + css + '\n i want to replace here \n' # 創建一個字符串變量,之后所有內容往上面加,組成一個完整的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 += ''</span> + <span id="dnrv3ppvb" class="" style="margin: 0px;padding: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(230, 219, 116);">'\n'</span> ?<span id="dnrv3ppvb" class="" style="margin: 0px;padding: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(117, 113, 94);"># 這個標簽可以把里面的內容原樣輸出</span> ? ? ? ? ? ?<span id="dnrv3ppvb" class="" style="margin: 0px;padding: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(249, 38, 114);">for</span> i <span id="dnrv3ppvb" class="" style="margin: 0px;padding: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(249, 38, 114);">in</span> d[<span id="dnrv3ppvb" class="" style="margin: 0px;padding: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(230, 219, 116);">'source'</span>]: ? ? ? ? ? ? ? ?s += i.rstrip() + <span id="dnrv3ppvb" class="" style="margin: 0px;padding: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(230, 219, 116);">'\n'</span> ? ? ? ? ? ?s += <span id="dnrv3ppvb" class="" style="margin: 0px;padding: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(230, 219, 116);">'
      \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 += '
    • '" 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)# 命令行解析,以文件及其路徑作為文件的參數

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

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

    view_ipynb_html(args.file,newname)

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

    下面我們再將py文件轉化為可執行程序。在文件夾下打開命令行窗口,輸入 .py即創建完成。

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

    改進方向

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

    愛好者社區歷史文章大合集:

    福利:文末掃碼立刻關注公眾號,“愛好者社區”,開始學習課程:

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有