我在 Ironpython 脚本中定义了字典,我想从我的 C# 代码访问这个字典。有人可以提供示例代码来实现我的要求。
抱歉之前我没有用代码提到我的问题陈述。
import clr
clr.AddReference("System.Core")
import System
clr.ImportExtensions(System.Linq)
from System.Collections.Generic import Dictionary,List
def check(self):
dict1 = Dictionary[str,str]
dict1["a"] = "aa"
dict2 = Dictionary[str,str]
dict2["b"] = "bb"
self[0] = dict1
# self.Add(dict1)
return self
Run Code Online (Sandbox Code Playgroud)
C#
var runtime = Python.CreateRuntime();
dynamic test = runtime.UseFile("Test.py");
var myDictList = new List<Dictionary<string, string>>();
var myDL = new List<Dictionary<string, string>>();
myDL = test.check(myDictList);
Run Code Online (Sandbox Code Playgroud)
我的目标是在 python 中的字典列表上操作(添加,从列表中删除)并将其发送回 C#,在那里我可以进一步使用它。我想要的是在 python 或 C# 中创建一个字典列表,并在两个(python 和 C#)的地方使用它。我怎么能这样做。
我需要将接收到的 IronPython 字典变量转换为常规 Python 字典。据我所知,变量是所谓的:
'System.Collections.Generic.Dictionary`2[System.String,System.String]'
Run Code Online (Sandbox Code Playgroud)
如果我使用:
for each in IronDictionary:
print type(each)
print each
Run Code Online (Sandbox Code Playgroud)
我正进入(状态:
type: '<class 'System.Collections.Generic.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'>'
'[MultiProcess, False]' # this line is a result of `print each` command
Run Code Online (Sandbox Code Playgroud)
所以本质each上就像一个普通的 Python 列表……如果我能把整个 Iron 字典转换成一个普通的 Python 字典就好了。如果不可能,我不介意迭代使用for each in IronDict:每个 Ironeach并将其转换为常规 Python 列表或 Python 字符串?...如何正确完成此操作?
我使用 IronPython 2.7 和 WPF 使用 VS2017 开发了一个应用程序,使用 ipy 命令可以正常工作。我想从项目创建一个 exe 文件,所以我在 cmd 中使用了以下命令:
ipy pyc.py /main:IronPython5.py /target:winexe
Run Code Online (Sandbox Code Playgroud)
项目的哪个 XAML 文件(包括所有相关 DLL)位于部署文件夹中,但是,我收到以下错误,我无法理解其含义:
Traceback (most recent call last):
File "pyc.py", line 332, in <module>
File "pyc.py", line 327, in Main
File "pyc.py", line 181, in GenerateExe
SystemError: Ambiguous match found.
Run Code Online (Sandbox Code Playgroud)
Ironpython5.py 包含:
import wpf
from System.Windows import MessageBox
from System.Windows import Application, Window
class MyWindow(Window):
def __init__(self):
self.str1 = ""
wpf.LoadComponent(self, 'IronPython5.xaml')
def Button_Click(self, sender, e):
if self.str1 == "":
MessageBox.Show("msg1") …Run Code Online (Sandbox Code Playgroud) 你能否将这个代码从C#转换为Python在IronPython上运行?
我对Python没有任何经验.
using System;
using Baz;
namespace ConsoleApplication
{
class Program
{
static void Main()
{
Portal foo = new Portal("Foo");
Agent bar = new Agent("Bar");
foo.Connect("127.0.0.1", 1234);
foo.Add(bar);
bar.Ready += new Agent.ReadyHandler(bar_Ready);
}
static void bar_Ready(object sender, string msg)
{
Console.WriteLine(msg.body);
}
}
}
Run Code Online (Sandbox Code Playgroud) 在诸如PowerShell和IronPython之类的.NET脚本语言中,当您想要使用.NET类时,通常需要导入程序集名称.有没有快速找到这些信息的方法?
例如,如果我想使用System.Net.Mail,我如何快速找出它所在的汇编?我不一定在寻找程序化的方式,即使是在线参考也可以.MSDN .NET类引用似乎没有告诉你(例如System.Net.Mail)
我只关心标准的.NET类,显然没有标准的命名空间/类到自定义和第三方类的程序集映射.
这个python表达式的C#等价物是什么?
file_no = int (last_file.Name.Replace(last_file.Extension,"")[-3:]);
Run Code Online (Sandbox Code Playgroud)
我明白什么[-3:],但不是(int)演员.
我需要在C#中编写这个IronPython代码(我找不到类似的C#库来匹配IronPython的re模块):
for v in variables:
replace = re.compile(v, re.IGNORECASE)...
re.sub(v, str(self.SQLVariables[v.upper().replace("&","")]),script_content)...
Run Code Online (Sandbox Code Playgroud)
换句话说,C#与以下表达式等效:
我一直在努力做一些我希望成为一个简单问题的事情.我想从Spotfire输出值(String/Real/Stringlist)到我的计算机上的文本文件.我的最终解决方案需要列出并保存文档属性,但是现在让我们使用stackoverflow中的工作脚本:是否可以使用IronPython将当前*.dxp项目的路径作为字符串返回?
两个变量:路径和分析是"打印"的.如何将它们打印到文本文件中?
类似的东西在这里完成:http://spotfired.blogspot.co.uk/2014/04/export-image-from-visualization.html其中创建.bmp图像.
非常感谢,
我需要注释大量的训练数据,为此,我需要听一堆声音片段并记下我听到的声音。为此,我在笔记本中编写了一个小脚本。
我的主要问题是IPython显示循环显示。举个例子:
import numpy
import IPython.display as ipd
sr = 22050# sample rate
T = 2.0# seconds
t = numpy.linspace(0, T, int(T*sr), endpoint=False)# time variable
x = 0.5*numpy.sin(2*numpy.pi*440*t)
ipd.Audio(x, rate=sr)
Run Code Online (Sandbox Code Playgroud)
会出现一个音频框,我将可以播放正弦波。
但是尝试在for循环中播放任何内容都不会产生任何结果(例如:)
for i in range(10000000):
x = 0.5*numpy.sin(i*numpy.pi*440*t)
ipd.Audio(x, rate=sr)
Run Code Online (Sandbox Code Playgroud)
如果有人有一个很好的解决方案来遍历(和收听)一堆音频文件(一次,一个,因为我需要遍历可能成千上万的声音片段),我将非常感激!