當前位置:首頁 » 編程語言 » python調用net

python調用net

發布時間: 2022-11-17 01:37:48

A. 怎麼調用編寫好的python程序

1 使用os.system函數運行其他程序
2 使用ShellExecute函數運行其他程序
3 使用CreateProcess函數運行其他程序
4 使用ctypes調用kernel32.dll中的函數
1 使用os.system函數運行其他程序
os模塊中的system()函數可以方便地運行其他程序或者腳本。其函數原型如下所示。
os.system(command) 其參數含義如下所示。
command 要執行的命令,相當於在Windows的cmd窗口中輸入的命令。如果要向程序或者腳本傳遞參數,可以使用空格分隔程序及多個參數。
以下實例實現通過os.system()函數打開系統的記事本程序。
>>> import os # 使用os.system()函數打開記事本程序 >>> os.system('notepad') 0 # 關閉記事本後的返回值 # 向記事本傳遞參數,打開python.txt文件 >>> os.system('notepad python.txt')
>>> import os # 使用os.system()函數打開記事本程序 >>> os.system('notepad') 0 # 關閉記事本後的返回值 # 向記事本傳遞參數,打開python.txt文件 >>> os.system('notepad python.txt')
2 使用ShellExecute函數運行其他程序
除了使用os模塊中的os.system()函數以外,還可以使用win32api模塊中的ShellExecute()函數。其函數如下所示。
ShellExecute(hwnd, op , file , params , dir , bShow )
其參數含義如下所示。
hwnd:父窗口的句柄,如果沒有父窗口,則為0。
op:要進行的操作,為「open」、「print」或者為空。
file:要運行的程序,或者打開的腳本。
arams:要向程序傳遞的參數,如果打開的為文件,則為空。
dir:程序初始化的目錄。
Show:是否顯示窗口。
以下實例使用ShellExecute函數運行其他程序。
>>> import win32api # 打開記事本程序,在後台運行,即顯示記事本程序的窗口 >>> win32api.ShellExecute(0, 'open', 'notepad.exe', '','',0)
# 打開記事本程序,在前台運行 >>> win32api.ShellExecute(0, 'open', 'notepad.exe', '','',1)
# 向記事本傳遞參數,打開python.txt >>> win32api.ShellExecute(0, 'open', 'notepad.exe', 'python.txt','',1)
# 在默認瀏覽器中打開http://www.python.org網站 >>> win32api.ShellExecute(0, 'open', 'http://www.python.org', '','',1)
# 在默認的媒體播放器中播放E:\song.wma >>> win32api.ShellExecute(0, 'open', 'E:\\song.wma', '','',1)
# 運行位於E:\book\code目錄中的MessageBox.py腳本 >>> win32api.ShellExecute(0, 'open', 'E:\\book\\code\\MessageBox.py', '','',1)
可以看出,使用ShellExecute函數,就相當於在資源管理器中雙擊文件圖標一樣,系統會打開相應的應用程序執行操作。
3 使用CreateProcess函數運行其他程序
為了便於控制通過腳本運行的程序,可以使用win32process模塊中的CreateProcess()函數。其函數原型如下所示。
CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles , dwCreationFlags , newEnvironment , currentDirectory , startupinfo )
CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles , dwCreationFlags , newEnvironment , currentDirectory , startupinfo )
其參數含義如下。
appName:可執行的文件名。
commandLine:命令行參數。
rocessAttributes:進程安全屬性,如果為None,則為默認的安全屬性。
threadAttributes:線程安全屬性,如果為None,則為默認的安全屬性。
InheritHandles:繼承標志。
dwCreationFlags:創建標志。
ewEnvironment:創建進程的環境變數。
currentDirectory:進程的當前目錄。
tartupinfo :創建進程的屬性。
以下實例使用win32process.CreateProcess函數運行記事本程序。
>>> import win32process >>> win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None , win32process.STARTUPINFO()) (, , 280, 3076) # 函數返回進程句柄、線程句柄、進程ID,以及線程ID
>>> import win32process >>> win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None , win32process.STARTUPINFO()) (<?XML:NAMESPACE PREFIX = PYHANDLE />, , 280, 3076) # 函數返回進程句柄、線程句柄、進程ID,以及線程ID
有了已創建進程的句柄就可以使用win32process.TerminateProcess函數結束進程,或者使用win32event.WaitForSingleObject等待創建的線程結束。其函數原型分別如下。
TerminateProcess(handle, exitCode) WaitForSingleObject(handle, milliseconds )
對於TerminateProcess參數含義分別如下。
handle:要操作的進程句柄。
exitCode:進程退出代碼。
對於WaitForSingleObject參數含義分別如下。
handle:要操作的進程句柄。
milliseconds:等待的時間,如果為?1,則一直等待。
以下實例實現創建進程後並對其進行操作。
>>> import win32process # 打開記事本程序,獲得其句柄>>> handle = win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None , win32process.STARTUPINFO()) # 使用TerminateProcess函數終止記事本程序>>> win32process.TerminateProcess(handle[0],0) # 導入win32event模塊>>> import win32event # 創建進程獲得句柄>>> handle = win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None , win32process.STARTUPINFO()) # 等待進程結束>>> win32event.WaitForSingleObject(handle[0], -1) 0 # 進程結束的返回值
>>> import win32process # 打開記事本程序,獲得其句柄
>>> handle = win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None , win32process.STARTUPINFO()) # 使用TerminateProcess函數終止記事本程序
>>> win32process.TerminateProcess(handle[0],0) # 導入win32event模塊
>>> import win32event # 創建進程獲得句柄
>>> handle = win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None , win32process.STARTUPINFO()) # 等待進程結束
>>> win32event.WaitForSingleObject(handle[0], -1) 0 # 進程結束的返回值
4 使用ctypes調用kernel32.dll中的函數
使用ctypes模塊可以使Python調用位於動態鏈接庫中的函數。在Python 2.5版中已經包含了ctypes模塊。如果使用其他版本的Python,可以到http://python.net/crew/theller/ctypes網站下載安裝。ctypes適用於Python 2.3版本及以上。

B. 如何在.net項目中引入Python

用IronPython就OK

IronPython 是一種在 .NET 及 Mono上的 Python 實現,由微軟的 Jim Hugunin 所發起,是一個開源的項目,基於微軟的 DLR 引擎;託管於微軟的開源網站 CodePlex(www.codeplex.com)。

IronPython 的官方並未實現 Python 通用類庫,僅實現了部分核心類,社區的開源類庫實現有: fepy(http://fepy.sourceforge.net/),fepy 為 IronPython 提供 Python 的大多數通用類庫的實現。

C. 計算機python的實現方式都有哪些

  1. 雖然官方 Python 實現差不多得到最廣泛的歡迎,但也有一些其他實現對特定領域的用戶來說更具吸引力。
    知名的實現包括:
    CPython
    這是最早出現並持續維護的 Python 實現,以 C 語言編寫。新的語言特性通常在此率先添加。
    Jython
    以 Java 語言編寫的 Python 實現。此實現可以作為 Java 應用的一個腳本語言,或者可以用來創建需要 Java 類庫支持的應用。想了解更多信息可訪問 Jython 網站。
    Python for .NET
    此實現實際上使用了 CPython 實現,但是屬於 .NET 託管應用並且可以引入 .NET 類庫。它的創造者是 Brian Lloyd。想了解詳情可訪問 Python for .NET 主頁。
    IronPython
    另一個 .NET 的 Python 實現,與 Python.NET 不同點在於它是生成 IL 的完全 Python 實現,並且將 Python 代碼直接編譯為 .NET 程序集。它的創造者就是當初創造 Jython 的 Jim Hugunin。想了解詳情可訪問 IronPython 網站。
    PyPy
    完全使用 Python 語言編寫的 Python 實現。它支持多個其他實現所沒有的高級特性,例如非棧式支持和 JIT 編譯器等。此項目的目標之一是通過允許方便地修改解釋器 (因為它是用 Python 編寫的),鼓勵該對語言本身進行試驗。想了解詳情可訪問 PyPy 項目主頁。
    以上這些實現都可能在某些方面與此參考文檔手冊的描述有所差異,或是引入了超出標准 Python 文檔范圍的特定信息。請參考它們各自的專門文檔,以確定你正在使用的這個實現有哪些你需要了解的東西。

  2. 以 Java 語言編寫的 Python 實現。此實現可以作為 Java 應用的一個腳本語言,或者可以用來創建需要 Java 類庫支持的應用。想了解更多信息可訪問 Jython 網站。
    Python for .NET
    此實現實際上使用了 CPython 實現,但是屬於 .NET 託管應用並且可以引入 .NET 類庫。它的創造者是 Brian Lloyd。想了解詳情可訪問 Python for .NET 主頁。
    IronPython
    另一個 .NET 的 Python 實現,與 Python.NET 不同點在於它是生成 IL 的完全 Python 實現,並且將 Python 代碼直接編譯為 .NET 程序集。它的創造者就是當初創造 Jython 的 Jim Hugunin。想了解詳情可訪問 IronPython 網站。

D. 提個python調用函數的問題,請問python調用 com 或者 .net 中含有byref 參數的函數的問題。

可以通過管道,可以通過操作系統標准輸入輸出傳遞 等等等等

總之操作系統就是php和python之間的bridge

如果說我所看的比笛卡爾更遠一點,那是因為站在巨人肩上的緣故。

E. 無需安裝Python,就可以在.NET里調用Python庫

如果你可以很簡單的引用一個Nuget包,並在無需手動修改的情況下,一切都會自動的配置好,假如可以達到這種程度,你會感覺怎麼樣?這就是我創建Python.Included的願景,Python.Included可以把packages python-3.7.3-embed-amd64.zip包含在它的程序集里,這這樣就允許你可以通過Nuget來有效的引用Python了。為了證明它能正常工作,並可以快速提供所有的NumSharp中仍然缺少的Numpy功能,我創建了基於Python.Included的Numpy.NET這個項目。

F. Aforge.net 調用pYthon

可以。
.NET環境可以調用Python,叫做IRONPython,Python環境下,無法調用C#,C#是編譯型語言,Python是解釋型語言,也就是腳本語言。

G. 如何使用它修改的地方Python中的.NET方法

PythonNet不包含本很清楚表達的IronPython的,但它幾乎同樣的事情。
那麼,讓我們來看看IronPython的文檔 REF 和退出參數:

Python語言的推移,值的所有參數。有沒有語法來表示一個參數應該按引用傳遞像有.NET語言,如C#和VB.NET通過ref和out關鍵字。 IronPython的支持傳遞ref或out參數的方法,一種含蓄的方式和明確的方式有兩種方式。

在隱式方式,一種說法通常傳遞到方法調用,並且它的(可能)更新值從呼叫沿與正常返回值(如果有的話)方法返回。這與多個返回值的Python的功能組成以及...

在明確的方式,你可以通過 clr.Reference的一個實例[T] 的ref或out參數,它的值欄位將獲得由呼叫建立。如果有多個重載與ref參數顯式的方法是有用...
有例子為。但把它定製您的具體情況:
itemIDs,如果itemNames = GetItems()

或者,如果你真的想要的:
itemIDsRef = clr.Reference [數組[INT]()
itemNamesRef = clr.Reference [數組[字元串]()
GetItems(itemIDs,如果itemNames)
itemIDs,如果itemNames = itemIDsRef.Value,itemNamesRef.Value

CPython的使用 PythonNet 做基本上是同樣的事情。最簡單的方法來做到退出參數是無法通過他們,接受他們成為多餘的返回值,以及 REF 參數通過輸入值作為參數,並接受輸出值作為額外的返回值。就像IronPython的的隱式的解決方案。 (除與 REF 或退出參數無效功能總是返回無的 REF之前或退出參數,甚至如果它不會在IronPython的。)您可以通過檢查返回值很容易弄清楚pretty的。所以,你的情況:
_,itemIDs,如果itemNames = GetItems()

同時,事實上這些恰好是陣列不使事情任何更難。由於的文檔解釋,PythonNet提供了可迭代介面,所有的的IEnumerable 的集合,而序列的協議,以及為陣列。所以,你可以這樣做:
的ITEMID,在了itemname拉鏈(itemIDs,如果itemNames):
列印ITEMID,了itemname

而的Int32 和字元串對象將轉換為本地 INT / 長和 STR / UNI code 對象,就好像他們是直接返回。
如果你真的想明確地將這些原生值,就可以了。 地圖或列表COM prehension會給你一個Python列表,可迭代的,包括周圍的 A PythonNet封裝陣列或其他的IEnumerable 。你可以明確地做一個長或 UNI code 出的的Int32 或字元串如果您需要。所以:
itemIDs =地圖(INT,itemIDs)
如果itemNames =地圖(UNI code,如果itemNames)

不過,我看不出有多大的優勢,這樣做,除非你需要,例如,$ P $使用其中的任何之前對檢查所有的值。

H. 請問c#怎麼用pythonnet調用python

這個是不是調用啊。這個僅僅是執行。如果是說調 用的話。python for .net和iron python都支持.net調 用python的模塊。

不過僅僅是執行的話也容易。假設你的start.py是一個可以執行的程序。是執行不是調用。不是import。

那麼你不需要set search paths,因為這個path是給import,也就是調用使用的。你set path沒有用。

你只需要全路徑帶過去,把start.py的全路徑補全了就可以了。

要實現調用,還需要將python的模塊編譯成c#可以使用的庫的形式。才可以直接用c#的方法import進來。很簡單的。而不需要使用python這個engine。

理論上講,如果.net支持動態載入。也可以使用動態載入的方法,使用python這個engine動態載入一個模塊。不過我不知道python for .net和iron python有沒有實現。這個太麻煩了。應該沒有完成。

所以你還是將python的代碼使用python for .net或者是iron python編譯生成可以發布的庫。後面就簡單的了。直接在.net里import就好了。

I. python介面中net.blobs.data.shape 是怎麼調用的

import numpya = numpy.array([[1,2,3],[4,5,6]])print a.shape矩陣有一個shape屬性,是一個(行,列)形式的元組

熱點內容
android圖片顏色 發布:2025-01-13 15:26:09 瀏覽:268
國家稅務總局電腦伺服器 發布:2025-01-13 15:10:24 瀏覽:596
金立老款機的開機密碼是多少 發布:2025-01-13 15:04:45 瀏覽:456
湖南網上辦稅初始密碼多少 發布:2025-01-13 15:02:49 瀏覽:417
怎麼使用筆記本連接伺服器 發布:2025-01-13 15:02:48 瀏覽:705
長城cs75plus選哪個配置 發布:2025-01-13 14:54:05 瀏覽:22
php與大象 發布:2025-01-13 14:48:34 瀏覽:344
linux編輯器下載 發布:2025-01-13 14:47:01 瀏覽:737
如何清理qq存儲空間vivo 發布:2025-01-13 14:35:28 瀏覽:364
存儲部件是 發布:2025-01-13 14:35:26 瀏覽:190