最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 中 .py文件 轉(zhuǎn) .pyd文件的操作

 更新時(shí)間:2021年03月04日 08:50:01   作者:夏華東的博客  
這篇文章主要介紹了python 中 .py文件 轉(zhuǎn) .pyd文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

pyd文件生成

安裝easycython庫(kù)

pip install easycython

test.py

def test():
  print("調(diào)用成功")

main.py

import test
test.test()

test.py文件重命名為:test.pyx

終端運(yùn)行命令

easycython *.pyx

重命名pyd文件,刪除:cp36-win_amd64.

運(yùn)行代碼,調(diào)用成功:

python main.py

代碼實(shí)現(xiàn)

import glob
import os
def get_file_path(path, file_type):
  """
  取文件夾下相同后綴文件路徑列表
  :param path: 文件夾路徑
  :param file_type: 后綴名
  :return:文件路徑列表
  """
  paths = glob.glob(os.path.join(path,
                  file_type
                  ))
  return paths
def str_replace(old_str,old,new):
  """
  在 old_str 字符串中,把 old 替換成 new
  :param old_str:原字符串
  :param old:被替換的字符
  :param new:替換后的字符
  :return:替換后的字符串
  """
  new_str = old_str.replace(old,new)
  # print("new_str:",new_str)
  return new_str
def py_to_pyd(path_dir,middle_name_pyd):
  """
  .py 文件 轉(zhuǎn) .pyd文件
  :param path_dir:.py文件所在的文件夾路徑
  :param middle_name_pyd:pyd的中間名,如: .cp36-win_amd64
  :return:
  """
  # .py 文件 轉(zhuǎn)成 .pyx文件
  file_type = '*.py'
  paths = get_file_path(path_dir, file_type)
  # print(paths)
  for pa in paths:
    new_str = str_replace(pa, 'py', 'pyx')
    os.rename(pa, new_str)
  # main.pyx 轉(zhuǎn)成 main.py
  old_name = path_dir + r'\main.pyx'
  new_name = path_dir + r'\main.py'
  os.rename(old_name,new_name)
  # 把 pyx 轉(zhuǎn)成 pyd
  os.system("cd {} && easycython *.pyx ".format(path_dir))
  # 刪除所有 .html 文件
  file_type = '*.html'
  paths = get_file_path(path_dir, file_type)
  # print(paths)
  for pa in paths:
    os.remove(pa)
  # 刪除所有 .pyx 文件
  file_type = '*.pyx'
  paths = get_file_path(path_dir, file_type)
  # print(paths)
  for pa in paths:
    os.remove(pa)
  # 刪除所有 .c 文件
  file_type = '*.c'
  paths = get_file_path(path_dir, file_type)
  # print(paths)
  for pa in paths:
    os.remove(pa)
  # 刪除名字中的 .pyd文件 中的 cp36-win_amd64
  file_type = '*.pyd'
  paths = get_file_path(path_dir, file_type)
  # print(paths)
  for pa in paths:
    new_str = str_replace(pa, middle_name_pyd, '')
    os.rename(pa,new_str)
if __name__ == '__main__':
  path_dir = r"C:\Users\xiahuadong\Desktop\number_humen - 副本"
  middle_name_pyd = '.cp36-win_amd64'
  py_to_pyd(path_dir, middle_name_pyd)

補(bǔ)充:Python 常見(jiàn)文件格式 .py .pyc .pyw .pyo .pyd 之間的主要區(qū)別

Python([ˈpaɪθən])是一種面向?qū)ο?、解釋型?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。Python語(yǔ)法簡(jiǎn)潔、清晰,具有豐富和強(qiáng)大的類庫(kù)。

Python源代碼遵循GPL(GNU General Public License)協(xié)議,由Guido van Rossum于1989年底發(fā)明,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。

Python常被稱為膠水語(yǔ)言,能把用其他語(yǔ)言編寫的各模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見(jiàn)情形是,用Python快速生成程序原型(有時(shí)甚至是程序最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫;譬如:3D游戲中的圖形渲染模塊,性能要求特別高,就可用C/C++重寫,而后封裝為Python可調(diào)用的擴(kuò)展類庫(kù)。需要注意的是,在您使用擴(kuò)展類庫(kù)時(shí)可能需要考慮平臺(tái)問(wèn)題,某些擴(kuò)展類庫(kù)可能不提供跨平臺(tái)實(shí)現(xiàn)。

一般認(rèn)為,Python 是一種解釋性語(yǔ)言,Python 在執(zhí)行時(shí),會(huì)先將 .py 文件中的源代碼編譯成 byte code(字節(jié)碼),然后再由 Python Virtual Machine 來(lái)執(zhí)行這些編譯 byte code。

這種機(jī)制的基本思想跟 Java、.NET 一致;但 Python Virtual Machine 與 Java 或 .NET 的 Virtual Machine 不同的是:Python 的 Virtual Machine 是一種更高級(jí)的 Virtual Machine。這里的高級(jí)并不是通常意義上的高級(jí),不是說(shuō) Python 的 Virtual Machine 比 Java 或 .NET 的功能更強(qiáng)大,更拽,而是說(shuō)和 Java 或 .NET 相比,Python 的 Virtual Machine 距真實(shí)機(jī)器的距離更遠(yuǎn)。或者可以這么說(shuō),Python 的 Virtual Machine 是一種抽象層次更高的 Virtual Machine。

Python 提供了一種中間編譯結(jié)果保存機(jī)制,即 byte code,或更準(zhǔn)確地說(shuō),保存 PyCodeObject。事實(shí)上,Python 確實(shí)提供了這樣一種機(jī)制 —— .pyc 文件。在執(zhí)行一個(gè) .py 文件的源代碼之后,Python 并不會(huì)自動(dòng)生成與該 .py 文件對(duì)應(yīng)的 .pyc 文件。Python 會(huì)根據(jù)需要自動(dòng)觸發(fā)、創(chuàng)建 .pyc 文件,原理很簡(jiǎn)單,就是利用 Python 的 import 機(jī)制。

在 Python 運(yùn)行過(guò)程中如碰到 import abc 這樣的語(yǔ)句,Python 將會(huì)在設(shè)定好的 path 中尋找 abc.pyc 或 abc.dll 文件。若沒(méi)有這樣的文件,而只是發(fā)現(xiàn)了 abc.py 文件,那么,Python 會(huì)首先將 abc.py 編譯成相應(yīng)的 PyCodeObject 中間結(jié)果,然后再創(chuàng)建 abc.pyc 文件,并將中間結(jié)果寫入該文件。接下來(lái),Python 才會(huì)對(duì) abc.pyc 文件進(jìn)行一個(gè) import 動(dòng)作,實(shí)際上也就是將 abc.pyc 文件中的 PyCodeObject 重新在內(nèi)存中復(fù)制出來(lái),加以運(yùn)行。

由于 Python .pyc 文件的此種運(yùn)行機(jī)制,所以,可隨時(shí)刪除所有中間過(guò)程 .pyc 文件,當(dāng) Python 再次運(yùn)行時(shí),還會(huì)重生成這些 .pyc 文件,對(duì)您所編輯程序的運(yùn)行并無(wú)任何影響。當(dāng)然,得有源代碼才行。

視窗用 python.exe 運(yùn)行 .py ,用 pythonw.exe 運(yùn)行 .pyw。因?yàn)榘惭b視窗版 Python 時(shí),擴(kuò)展名 .py 自動(dòng)被登記為用 python.exe 運(yùn)行, 而 .pyw 則被登記為用 pythonw.exe 運(yùn)行。

.py 文件

以 .py 作擴(kuò)展名的文件是 Python 源代碼文件,由 python.exe 解釋,可在控制臺(tái)下運(yùn)行。當(dāng)然,也可用文本編輯器進(jìn)行修改。

.pyc 文件以 .pyc 作擴(kuò)展名的文件是 python 編譯文件。.pyc 文件是不能用文本編輯器進(jìn)行編輯的,其優(yōu)點(diǎn)是 .pyc 文件的執(zhí)行速度要遠(yuǎn)快于 .py 文件。至于為什么要有 .pyc 文件,這個(gè)需求太明顯了,因?yàn)?.py 文件是可直接看到源碼的,若是軟件開(kāi)發(fā)商的話,不可能把源碼泄漏出去?所以,就需編譯成 .pyc 后再發(fā)布。

.pyw 文件

.pyc 文件執(zhí)行時(shí),桌面會(huì)出現(xiàn)類似 CMD 命令的黑色 shell 窗口,十分難看,于是 .pyw 文件就應(yīng)運(yùn)而生了。.pyw 文件與 .pyc 文件的執(zhí)行,本質(zhì)上并沒(méi)什么區(qū)別,只是 .pyw 文件執(zhí)行的時(shí)候不會(huì)出現(xiàn)類似 CMD 命令的黑色 shell 窗口。

.pyw 文件格式主要是設(shè)計(jì)用來(lái)運(yùn)行純 GUI 圖形用戶界面程序的。 純 GUI 圖形用戶界面程序的用戶不需要看到類似 CMD 命令的黑色 shell 控制臺(tái)窗口。.pyw 文件運(yùn)行時(shí),所有 stdout、stderr 輸出無(wú)效,所有原 stdin 的讀取只會(huì)得到 EOF。值得一提的是,開(kāi)發(fā)純 GUI 圖形用戶界面程序時(shí),可暫時(shí)把 .pyw 改成 .py,以便運(yùn)行時(shí)調(diào)出控制臺(tái)窗口,看到所有錯(cuò)誤信息,方便修改、調(diào)試。

.pyo 文件

.pyo 文件是優(yōu)化編譯后的程序。 “python -O 源文件” 即可將源程序編譯為 .pyo 文件。同樣,.pyo 文件也是不能用文本編輯器進(jìn)行編輯的。

.pyd 文件

.pyd 文件并不是用 python 編寫成的,.pyd 文件一般是其他語(yǔ)言編寫的 python 擴(kuò)展模塊。.pyd 文件是用 D 語(yǔ)言按照一定格式編寫,并處理成二進(jìn)制的文件。

那么什么是 “D 語(yǔ)言” 呢?它是 C/C++ 的綜合進(jìn)化版,不僅具有二者 的全部?jī)?yōu)點(diǎn),且整體性能更佳,但其抽象程度高。

D 語(yǔ)言最初由 Digital Mars 公司就職的 Walter Bright 于 2001 年發(fā)布,意圖改進(jìn) C++ 語(yǔ)言。目前最新 D 語(yǔ)言被簡(jiǎn)稱為 D2。最主要的 D 語(yǔ)言的實(shí)現(xiàn)是 DMD。

D 語(yǔ)言源自 C/C++,借鑒了眾多編程語(yǔ)言的特色和現(xiàn)代編譯器技術(shù),融會(huì)貫通了設(shè)計(jì)者豐富的實(shí)踐經(jīng)驗(yàn),使之具備了非凡的威力 ── 既有 C/C++ 語(yǔ)言的強(qiáng)大威力,又有 Python 和 Ruby 的開(kāi)發(fā)效率。它集眾多系統(tǒng)級(jí)編程所需的功能于一身,例如垃圾回收、手工內(nèi)存操作、契約式設(shè)計(jì)、高級(jí)模板技術(shù)、內(nèi)嵌匯編、內(nèi)置單元測(cè)試、Mixin 風(fēng)格多繼承、類 Java 包管理機(jī)制、內(nèi)置同步機(jī)制、內(nèi)建基本運(yùn)行時(shí)信息。

python 要導(dǎo)入 .pyd 文件,實(shí)際上是在 .pyd 文件中封裝了一個(gè) module,在 python 中使用時(shí),把它當(dāng)成 module 來(lái)用就可以了,即:import 路徑名.modulename 即可,路徑名為 .pyd 文件所在的路徑。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 基于python 將列表作為參數(shù)傳入函數(shù)時(shí)的測(cè)試與理解

    基于python 將列表作為參數(shù)傳入函數(shù)時(shí)的測(cè)試與理解

    這篇文章主要介紹了基于python 將列表作為參數(shù)傳入函數(shù)時(shí)的測(cè)試與理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python3中列表list合并的四種方法

    Python3中列表list合并的四種方法

    這篇文章主要介紹了Python3中列表list合并的四種方法,文章結(jié)尾對(duì)每種方法做了總結(jié),需要的朋友可以參考下
    2019-04-04
  • Python連接SQLServer2000的方法詳解

    Python連接SQLServer2000的方法詳解

    這篇文章主要介紹了Python連接SQLServer2000的方法,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接過(guò)程中所遇到的常見(jiàn)問(wèn)題與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-04-04
  • Python面向?qū)ο缶幊袒A(chǔ)解析(一)

    Python面向?qū)ο缶幊袒A(chǔ)解析(一)

    這篇文章主要介紹了Python面向?qū)ο缶幊袒A(chǔ)解析的相關(guān)內(nèi)容,如果您想對(duì)Python編程的基礎(chǔ)部分有所了解,這篇文章是值得一看的,需要的朋友可以參考下。
    2017-10-10
  • 關(guān)于python實(shí)現(xiàn)常用的相似度計(jì)算方法

    關(guān)于python實(shí)現(xiàn)常用的相似度計(jì)算方法

    這篇文章主要介紹了關(guān)于python實(shí)現(xiàn)常用的相似度計(jì)算方法,最初的相似度計(jì)算是為了表征向量的重合程度的,在這里最經(jīng)典的就是余弦相似度了,當(dāng)然使用正弦或者是正切等等三角函數(shù)也都是可以的,需要的朋友可以參考下
    2023-07-07
  • 基于Python制作IP查詢網(wǎng)站

    基于Python制作IP查詢網(wǎng)站

    這篇文章主要為大家詳細(xì)介紹了如何使用python快速做一個(gè)簡(jiǎn)易查內(nèi)網(wǎng)IP網(wǎng)站,通過(guò)電腦訪問(wèn)網(wǎng)站就知道自己的IP地址,感興趣的小伙伴可以了解下
    2024-10-10
  • python獲取beautifulphoto隨機(jī)某圖片代碼實(shí)例

    python獲取beautifulphoto隨機(jī)某圖片代碼實(shí)例

    python獲取beautifulphoto隨機(jī)某圖片代碼實(shí)例,大家參考使用吧
    2013-12-12
  • 使用python求斐波那契數(shù)列中第n個(gè)數(shù)的值示例代碼

    使用python求斐波那契數(shù)列中第n個(gè)數(shù)的值示例代碼

    這篇文章主要給大家介紹了關(guān)于使用python求斐波那契數(shù)列中第n個(gè)數(shù)的值的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python遍歷指定文件及文件夾的方法

    Python遍歷指定文件及文件夾的方法

    這篇文章主要介紹了Python遍歷指定文件及文件夾的方法,對(duì)比兩種實(shí)現(xiàn)技巧分析了Python遍歷文件及文件夾的方法,需要的朋友可以參考下
    2015-05-05
  • django教程如何自學(xué)

    django教程如何自學(xué)

    在本篇內(nèi)容里小編給大家整理了關(guān)于django教程學(xué)習(xí)流程,想自學(xué)的朋友們可以閱讀下。
    2020-07-07

最新評(píng)論

洪泽县| 台北市| 铜山县| 西昌市| 平潭县| 南昌市| 中山市| 丹巴县| 嘉定区| 浪卡子县| 兴文县| 兴安县| 台北市| 华池县| 竹山县| 河源市| 衡山县| 广东省| 鄱阳县| 林芝县| 鸡泽县| 大埔县| 崇信县| 白山市| 邵武市| 上高县| 丽水市| 肥城市| 阳春市| 密山市| 松阳县| 宝坻区| 宝鸡市| 嵩明县| 翁源县| 二连浩特市| 金湖县| 无锡市| 察雅县| 革吉县| 大邑县|