【问题标题】:Converting IronPython file object to .NET Stream object将 IronPython 文件对象转换为 .NET Stream 对象
【发布时间】:2011-06-03 12:13:17
【问题描述】:

有没有一种简单的方法可以将 IronPython 类文件对象转换为 .NET 流?在 IronPython 中可以使用如下代码进行反向操作:

net_stream = File.OpenRead('file.txt')
python_file = file(net_stream)

有没有简单的方法可以将其转换回来?还是必须编写一个继承自Stream 的包装器并实现所有方法?

【问题讨论】:

  • FWIW,我想做相反的事情,所以你的问题代码正是我需要的。

标签: ironpython


【解决方案1】:

显然可以这样做:

import System
f = file('abc.txt', 'w+')
f.GetType().GetField('_stream', System.Reflection.BindingFlags.Instance | 
                                System.Reflection.BindingFlags.NonPublic).GetValue(f)

【讨论】:

  • 但这仅适用于构建在 .NET 流上的“真实”文件对象,而不适用于任意类似文件的对象(鸭子类型)。
猜你喜欢
  • 1970-01-01
  • 2010-12-07
  • 2014-03-19
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多