当前位置:首页 » 编程语言 » 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属性,是一个(行,列)形式的元组

热点内容
防盗器编程 发布:2025-01-13 17:24:39 浏览:896
联通电信服务器怎么不卡顿 发布:2025-01-13 17:21:30 浏览:818
科沃兹低配可以升级哪些配置 发布:2025-01-13 17:09:26 浏览:327
android判断数据库是否存在 发布:2025-01-13 17:08:17 浏览:331
ie脚本运行错误 发布:2025-01-13 17:08:05 浏览:620
python中或者怎么表示 发布:2025-01-13 16:32:33 浏览:288
易达加密锁 发布:2025-01-13 16:27:23 浏览:514
前端编译工具配置 发布:2025-01-13 16:26:43 浏览:585
数据库百度云 发布:2025-01-13 16:19:38 浏览:539
java连接sqlite数据库 发布:2025-01-13 16:19:36 浏览:768