欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ǔ)言編寫(xiě)的各模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見(jiàn)情形是,用Python快速生成程序原型(有時(shí)甚至是程序最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫(xiě);譬如:3D游戲中的圖形渲染模塊,性能要求特別高,就可用C/C++重寫(xiě),而后封裝為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é)果寫(xiě)入該文件。接下來(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 編寫(xiě)成的,.pyd 文件一般是其他語(yǔ)言編寫(xiě)的 python 擴(kuò)展模塊。.pyd 文件是用 D 語(yǔ)言按照一定格式編寫(xiě),并處理成二進(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)文章

  • 10個(gè)python爬蟲(chóng)入門(mén)實(shí)例(小結(jié))

    10個(gè)python爬蟲(chóng)入門(mén)實(shí)例(小結(jié))

    這篇文章主要介紹了10個(gè)python爬蟲(chóng)入門(mén)實(shí)例(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python自動(dòng)裁剪圖像代碼分享

    python自動(dòng)裁剪圖像代碼分享

    這篇文章主要介紹了python自動(dòng)裁剪圖像代碼分享,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Python實(shí)現(xiàn)猜數(shù)字小游戲

    Python實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章介紹了Python實(shí)現(xiàn)猜數(shù)字小游戲,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以收藏下,方便下次瀏覽觀看
    2021-12-12
  • python繪制多個(gè)曲線的折線圖

    python繪制多個(gè)曲線的折線圖

    這篇文章主要為大家詳細(xì)介紹了python繪制多個(gè)曲線的折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python使用Pickle庫(kù)實(shí)現(xiàn)讀寫(xiě)序列操作示例

    Python使用Pickle庫(kù)實(shí)現(xiàn)讀寫(xiě)序列操作示例

    這篇文章主要介紹了Python使用Pickle庫(kù)實(shí)現(xiàn)讀寫(xiě)序列操作,結(jié)合實(shí)例形式分析了pickle模塊的功能、常用函數(shù)以及序列化與反序列化相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • OpenCV-Python實(shí)現(xiàn)油畫(huà)效果的實(shí)例

    OpenCV-Python實(shí)現(xiàn)油畫(huà)效果的實(shí)例

    OpenCV是功能強(qiáng)大的計(jì)算機(jī)視覺(jué)庫(kù),本文主要使用OpenCV來(lái)實(shí)現(xiàn)圖片的油畫(huà)效果,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 詳解Python文本操作相關(guān)模塊

    詳解Python文本操作相關(guān)模塊

    這篇文章主要介紹了詳解Python文本操作相關(guān)模塊的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Flask 讓jsonify返回的json串支持中文顯示的方法

    Flask 讓jsonify返回的json串支持中文顯示的方法

    下面小編就為大家分享一篇Flask 讓jsonify返回的json串支持中文顯示的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 使用python批量讀取word文檔并整理關(guān)鍵信息到excel表格的實(shí)例

    使用python批量讀取word文檔并整理關(guān)鍵信息到excel表格的實(shí)例

    今天小編就為大家分享一篇使用python批量讀取word文檔并整理關(guān)鍵信息到excel表格的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python的圖像處理庫(kù)Pillow安裝與使用教程

    Python的圖像處理庫(kù)Pillow安裝與使用教程

    Pillow庫(kù)是Python中用于圖像處理的開(kāi)源庫(kù),提供了豐富的圖像處理功能,如圖像讀取、保存、裁剪、調(diào)整大小、旋轉(zhuǎn)、添加文字等,這篇文章主要給大家介紹了關(guān)于Python的圖像處理庫(kù)Pillow安裝與使用的相關(guān)資料,需要的朋友可以參考下
    2024-04-04

最新評(píng)論