#python #c# #.net #ironpython
Вопрос:
Я пишу несколько строк кода python в своем приложении .NET, используя IronPython, для работы с CSV-файлами. Я использую библиотеку CSV pythons для этой цели, но она не работает. Библиотека не импортируется в IronPython.
Вот пример моего кода на python:
import csv
with open("infile.dat") as infile, open("outfile.csv", "w") as outfile:
csv_writer = csv.writer(outfile)
prev = ''
csv_writer.writerow(['ID', 'PARENT_ID'])
for line in infile.read().splitlines():
csv_writer.writerow([line, prev])
prev = line
Вот мой код на c# :
using IronPython.Hosting;
using System;
using System.IO;
using System.Text.RegularExpressions;
namespace DatFileReader
{
class Program
{
static void Main(string[] args)
{
var py = Python.CreateEngine();
try
{
py.ExecuteFile("D://myPy.py");
}
catch
{
}
}
}
}
Ответ №1:
Вам нужно передать путь к стандартной библиотеке IronPython вашему движку, чтобы он заработал.
Так что это должно сработать, если вы установили IronPython вручную на свой компьютер:
ICollection<string> searchPaths = engine.GetSearchPaths();
searchPaths.Add("C:\Path\To\IronPython\StandardLib");
py.SetSearchPaths(searchPaths);
Так что, если вы исправите путь к стандартной библиотеке, это должно сработать.
Следующая ссылка должна помочь вам импортировать и использовать стандартную библиотеку IronPython поверх менеджера пакетов NuGet: